1. 程式人生 > >angular初體驗

angular初體驗

就是 else strong 參數名稱 element 密碼 依賴 length 入口

所有需要ng管理的代碼必須被包裹在一個有ng-app指令的元素中
ng-app是ng的入口,表示當前元素的所有指令都會被angular管理(對每一個指令進行分析和操作)

利用angular實現雙向綁定:

1 <div ng-app ng-init="user.name=‘world‘">
2     <h1>使用NG實現雙邊數據綁定</h1>
3     <input type="text"
4       placeholder="請輸入你的姓名"
5       ng-model="user.name">
6     <p>hello <
strong>{{user.name}}</strong></p> 7 </div>

模塊:

 1 <body>
 2   <div ng-app="myApp" ng-controller="DemoController">
 3     <h1>使用NG實現雙邊數據綁定</h1>
 4     <input type="text" placeholder="請輸入你的姓名" ng-model="user.name">
 5     <p>hello <strong>
{{user.name}}</strong></p> 6 <input type="button" ng-click="show()"> 7 </div> 8 <script src="bower_components/angular/angular.js"></script> 9 <script> 10 // 註冊模塊 通過module函數, 11 // 第一個參數是這個模塊的名字 12 // !!! 第二個參數是這個模塊所依賴的模塊, 如果不依賴任何模塊也必須傳遞第二個參數,如果沒有傳遞第二個參數,angular.module就不是創建一個模塊
13 // angular.module 返回 剛剛創建的模塊對象 14 var app= angular.module(myApp,[]); 15 // app.controller 方法用於創建一個控制器,所創建的控制器屬於myApp模塊 16 // app.controller(‘DemoCtrl‘); 17 // 控制器函數的參數中有一個$scope 18 // angular.module(‘myApp‘).controller(‘DemoController‘, function($scope) { 19 // // 當控制器執行時會自動執行的函數 20 // $scope.user = {}; 21 // $scope.user.name = ‘張三‘; 22 // // $scope不僅僅可以往視圖中暴露數據,還可以暴露行為 23 // $scope.show = function() { 24 // console.log($scope.user); 25 // }; 26 // }); 27 </script> 28 </body>

3,angular控制器:

<body ng-app="myModule" ng-controller="HelloController">
  <script src="bower_components/angular/angular.js"></script>
  <script>
    // 由於控制器是必須出現在某個模塊下的,想創建一個控制器必須先創建模塊
    var module = angular.module(myModule, []); // 返回的就是模塊對象

    // angular在執行控制器函數時,
    // 會根據參數的名字($scope)去自動的註入對象
    // 根據參數名稱傳遞對應對象,所以必須要寫正確的參數名稱
    // module.controller(‘HelloController‘, function($scope) {
    //   console.log($scope);
    // });
    //
    // 由於壓縮代碼會改變參數名稱,註冊控制的標準方式就是通過第二個參數傳遞數組的方式(數組的成員最後一個就是原本的控制器函數,前面的成員都是需要註入的對象名稱)
    module.controller(HelloController, [$scope,$http, function(a,b) {
      console.log(a);
    }]);
  </script>
</body>

控制器2:

 1 <body>
 2   <table border="1" ng-controller="WorldController">
 3     <tr>
 4       <td>用戶名</td>
 5       <td>
 6         <input type="text" ng-model="user.username">
 7       </td>
 8     </tr>
 9     <tr>
10       <td>密碼</td>
11       <td>
12         <input type="password" ng-model="user.password">
13       </td>
14     </tr>
15     <tr>
16       <td></td>
17       <td>
18         <input type="button" ng-click="login()" value="登陸">
19       </td>
20     </tr>
21     <tr>
22       <td></td>
23       <td>{{message}}</td>
24     </tr>
25   </table>
26   <script src="bower_components/angular/angular.js"></script>
27   <script>
28     // 創建一個模塊
29     var app = angular.module(HelloApp, []);
30     // 為這個模塊創建一個控制器
31     app.controller(WorldController, [$scope, function($scope) {
32 
33       // 數據
34       $scope.user = {
35         username: ‘‘,
36         password: ‘‘
37       };
38       $scope.demo = ‘‘;
39 
40       // 行為數據
41       $scope.login = function() {
42         // 因為數據的變化時雙向的同步,所以界面上的值變化會同步到$scope.user上
43         console.log($scope.user);
44       };
45 
46 
47       // 請輸入用戶名  輸入格式不合法
48       $scope.message = 請輸入用戶名;
49       // $scope.message取決於$scope.user
50 
51       // 官方的API中提供了一個$scope.$watch方法,
52       $scope.$watch(user.username, function(now, old) {
53         // 當user.username發生變化時觸發這個函數
54         // console.log(‘now is ‘ + now);
55         // console.log(‘old is ‘ + old);
56         if (now) {
57           if (now.length < 7) {
58             $scope.message = 輸入格式不合法;
59           } else {
60             $scope.message = ‘‘;
61           }
62         } else {
63           $scope.message = 請輸入用戶名;
64         }
65       });
66 
67       // angular 基本不用操作DOM,如果必要,可以使用angular提供的jqlite
68       //
69       // angular.element(‘body‘)
70     }]);
71   </script>
72 </body>

4.angular表達式:

 1   <style>
 2     /* ng-cloak指令就是在NG執行完畢過後自動移除 */
 3 
 4     [ng-cloak],
 5     .ng-cloak {
 6       display: none;
 7     }
 8   </style>
 9 </head>
10 
11 <body ng-app class="ng-cloak">
12   {{ true ? ‘true‘:‘false‘ }}
13   <script src="bower_components/angular/angular.js"></script>
14 </body>

angular初體驗