Angular.js-2入門

来源:https://www.cnblogs.com/forever-xuehf/archive/2018/05/25/9090458.html
-Advertisement-
Play Games

1.angular與MVC 2.binding雙向綁定 3.controller的使用 4.scope的變數與方法 5.定義service服務 6.在controller中使用service服務 6.常用指令可查看官方文檔api ...


1.angular與MVC

MVC即Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟體設計典範,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件裡面,在改進和個性化定製界面及用戶交互的同時,不需要重新編寫業務邏輯。MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。
M 模型對應資料庫
V 視圖對應HTML頁面
C 控制器處理用戶交互
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" href="css/bootstrap.min.css"/>
</head>
<style>
    body {
        padding: 10px;
    }
</style>
<body ng-app="app">
    <div ng-controller="MyCtrl">
        <input type="text" ng-model="msg"/>
        <h1>{{msg}}</h1>
    </div>
</body>
<script src="js/angular.min.js"></script>
<script>
    angular.module('app',[])//module創建一個angular模塊
            .controller('MyCtrl',function($scope){//controller相當於簡單的MVC,MyCtrl相當於C,$scope相當於M
               $scope.msg="angular";//每一個模型,通過雙向綁定,把模型綁定到V上即HTML頁面
            })
            .controller('MyCtrl1',function($scope){})//可以創建更多
            .controller('MyCtrl2',function($scope){})
            .controller('MyCtrl3',function($scope){});
</script>
</html>

2.binding雙向綁定

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" href="http://cdn.static.runoob.com/libs/foundation/5.5.3/css/foundation.min.css">
</head>
<body style="padding:10px;" ng-app="">
    <div>
        <input type="text" ng-model="uname"/>
        <h1 ng-bind="uname">{{}}</h1><!--顯示輸入框內容-->
        <h1 ng-clock class="ng-clock">{{uname}}</h1><!--顯示輸入框內容-->
        <!--{{}}內可放置任何表達式-->
        <div ng-bind="'用戶名:'+uname"></div><!--顯示:用戶名:button-->
        <div class="{{uname}}">{{uname}}</div><!--顯示button標簽-->
    </div>
</body>
<script src="js/angular.min.js"></script>
</html>

3.controller的使用

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" href="http://cdn.static.runoob.com/libs/foundation/5.5.3/css/foundation.min.css">
</head>
<body style="padding: 10px" ng-app="app">
    <div ng-controller="FirstCtrl">
        <!--<h1>{{msg}}</h1>同ng-bind且可省去{{}}-->
        <h1 ng-bind="msg"></h1>
        <input type="text" ng-model="msg"/>
    </div>
    <div ng-controller="NextCtrl">
        <!--<h1>{{msg}}</h1>-->
        <h1 ng-bind="msg"></h1>
        <input type="text" ng-model="msg"/>
    </div>
<!--ng-controller明確其作用域邊界-->
</body>
<script src="js/angular.min.js"></script>
<script>
angular.module('app',[])
    .controller('FirstCtrl',function($scope){
        $scope.msg="hello angular";
    })
    .controller('NextCtrl',function($scope){
        $scope.msg="hello 極客";
    });

</script>
</html>

4.scope的變數與方法

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" href="http://cdn.static.runoob.com/libs/foundation/5.5.3/css/foundation.min.css">
</head>
<body style="padding:10px;" ng-app="app">
<p>在scope上定義方法併在頁面上進行綁定調用</p>
<p>在scope上定義變數併在方法中使用</p>
<div ng-controller="MyCtrl">
    <!--<input type="text" ng-model="msg"/>-->
    <!--<h1>{{reverse()}}</h1>-->
    <!--在頁面上綁定調用scope中定義的方法-->
    <input type="text" ng-model="user.uname"/>
    <input type="text" ng-model="user.pwd"/>
    <div class="button" ng-click="login()">登錄</div>
    <div ng-show="errormsg.length>0" class="alert-box">{{errormsg}}</div>
</div>
</body>
<script src="js/angular.min.js"></script>
<script>
angular.module('app',[])
    .controller('MyCtrl',function($scope){
        $scope.msg="";
        $scope.user={uname:'',pwd:''};
        $scope.errormsg="";
        $scope.reverse=function(){//在scope上定義方法
            return $scope.msg.split("").reverse().join("")
        };
        $scope.login=function(){
            if($scope.user.uname=="admin" && $scope.user.pwd=="123"){
                alert("登陸成功");
            }else{
                $scope.errormsg="用戶名或密碼錯誤";
            }
        }
    });

</script>
</html>

5.定義service服務

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" href="http://cdn.static.runoob.com/libs/foundation/5.5.3/css/foundation.min.css">
</head>
<body style="padding:10px" ng-app="app">
    <div ng-controller="MyCtrl">
        <h1>{{realname}}</h1>
        <h1>{{http}}</h1>
        <h1>{{data.msg}}</h1>
        <h1>{{uname}}</h1>
    </div>
</body>
<script src="js/angular.min.js"></script>
<script>
angular.module('app',[])
    //service多種表現形式,四種創建模式value(值可改變) constant(常量不可改變) factory service provider(高級)
    .value('realname','zhaoliu')
    .value('realname','wangwu')
    .constant('http','www.baidu.com')
    .constant('http','www.sohu.com')
    .factory('Data',function(){
        return {
            msg:'你好嗎',
            setMsg:function(){
                this.msg="我不好";
            }
        }
    })
    .service('User',function(){
        this.firstname="上官";
        this.lastname="小子";
        this.getName=function(){
            return this.firstname+this.lastname;
        }
    })
    .controller('MyCtrl',function($scope,realname,http,Data,User){
        $scope.realname=realname;
        $scope.http=http;
        $scope.data=Data;
        Data.setMsg();
        $scope.uname=User.getName();
    });

</script>
</html>

6.在controller中使用service服務

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" href="http://cdn.static.runoob.com/libs/foundation/5.5.3/css/foundation.min.css">
</head>
<body style="padding:10px" ng-app="app">
    <p>service:如何在多個controller中共用數據</p>
    <div ng-controller="FCtrl">
        <input type="text" ng-model="data.msg"/>
        <h2>{{data.msg}}</h2>
    </div>
    <div ng-controller="SCtrl">
        <input type="text" ng-model="data.msg"/>
        <h2>{{data.msg}}</h2>
    </div>
</body>
<script src="js/angular.min.js"></script>
<script>
angular.module('app',[])
    .factory('Data',function(){
        return {
            msg:'我來自factory'
        }
    })
    .controller('FCtrl',function($scope,Data){
        $scope.data=Data;
    })
    .controller('SCtrl',function($scope,Data){
        $scope.data=Data;
    });
</script>
</html>

6.常用指令可查看官方文檔api


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在開發中,有時需要兩個或多個APP版本,每個版本的改動,不是很多,但是需要另外打包,那麼我們就有兩套方案: 1.重新開發,把代碼複製一遍,然後在修改; 2.用一套代碼,根據需求生成不同的包; 我們一般會用第二個方案,這時就需要根據不同的需求,創建不同的target;通過編譯打包不同的target,做 ...
  • (1)安裝Node.js 首先您需要安裝 Node.js,後續會使用到其中的 NPM 工具。 (2)安裝JDK 需要安裝JDK,官網下載安裝。命令視窗中輸入 java -Xmx2048m -version 進行檢查。32位系統環境下無法運行Xmx2048m的記憶體設置。 系統變數→新建 JAVA_HO ...
  • 一、知識介紹 ①res資源圖片是放在項目res文件下的資源圖片 ②BitMap點陣圖,一般文件尾碼為BMP,需要編碼器編碼,如RGB565,RGB8888等。一種逐像素的顯示對象,其執行效率高,但缺點也很明顯,存儲效率低。 ③Drawable,通用的圖形對象,它可以裝載常用的圖像,GIF,PNG,JP ...
  • "iOS_系統原生分享 CSDN博客" "通過UIActivityViewController實現更多分享服務 簡書" "UIActivity UIKit _ Apple Developer Documentation" ...
  • 享受高清晰影院般的大屏幕電影帶來的快樂,單純的iOS設備實現這些是不可能的。蘋果有一套解決方案,iOS設備把這些視頻和音效數據無線傳輸(WiFi或藍牙)Apple TV,然後由Apple TV將視頻和音效數據輸出到與它連接的高清電視和高保真音響設備。 通過AirPlay可以將iOS和Mac設備屏幕與 ...
  • 用戶在調用層(Activity或Service中),發起一個網路請求,該請求肯定包含url,請求參數(requestParameter),以及我們需要給調用層提供一個請求成功或失敗以後回調監聽的介面dataListener(這一點與Volley類似)。 在框架層,每一次用戶請求可以看做一個Http任 ...
  • iOS 設置View投影 需要設置 顏色 陰影半徑 等元素 ...
  • 迴圈 利用for迴圈計算1 * 2 * 3 * ... * 10的結果: 'use strict'; var x = 1; var i; for (i=1;i<=10;i++) {x=x*i;} if (x 3628800) { console.log('1 x 2 x 3 x ... x 10 = ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...