• 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>
  • 相关阅读:
    servlet的九大内置对象
    java中static、transient修饰的属性不能被序列化
    java 字节流与字符流的区别
    mac 下如何切换jdk的版本
    00 python基础--目录结构
    html 5 本地数据库-- Web Sql Database核心方法openDatabase、transaction、executeSql 详解
    shell脚本入门
    Canvas API详解
    精通CSS滤镜(filter)(实例解析)
    CSS中加号、星号及其他符号的作用
  • 原文地址:https://www.cnblogs.com/yangguoe/p/8319797.html
Copyright © 2020-2023  润新知