angular初体验

所有需要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>
原文地址:https://www.cnblogs.com/yangguoe/p/8319797.html