zoukankan      html  css  js  c++  java
  • 01 Angular

    实例代码

    html部分

    <div ng-app="myApp" ng-controller="demoController">
        <h1>使用NG实现双边数据绑定</h1>
        <p>{{message}}</p>
        姓名:<input type="text" placeholder="请输入姓名" ng-model="user.name"><br>
        密码:<input type="password" placeholder="请输入6位数密码" ng-model="user.password"><br>
        <p>hello,{{user.name}},你的密码是:{{user.password}}</p>
        <input type="button" ng-click="show()" value="console显示对象">
    </div>

    JavaScript部分

    <script src="bower_components/angular/angular.js"></script>
    <script>
        var app = angular.module('myApp',[]);
        app.controller('demoController',function ($scope) {
            $scope.user={
                name:'xiao',
                password:'123456'
            };
            $scope.show = function () {
                console.log($scope.user);
            }
            $scope.message = "请按要求输入!";
            $scope.$watch('user.password',function (now,old) {
                // 当user.username发生变化时触发这个函数
                if (now){
                    if (now.length <6){
                        $scope.message = '请输入6位数密码';
                    }else {
                        $scope.message = '';
                    }
                }else {
                    $scope.message = '请按要求输入';
                }
            });
        })
    </script>

    笔记:

    1.注册模块

    var app=  angular.module('myApp',[]);
    • 第一个参数是这个模块名字:myApp
    • 第二个参数是这个模块所依赖的模块,如果不依赖任何模块也必须传递第二个参数
      如果没有传递第二个参数,angular.module就不是创建一个模块
      angular.module('myModule', []) 返回 刚刚创建的模块对象
    • <div ng-app="myApp" ng-controller="demoController"> ,ng-app通常加在HTML或者body标签,一个网页中可以创建多个节点 ng-app(但不推荐)

    2.注册控制器

    app.controller('demoController',function ($scope) {  }
    • 控制器是必须出现在某个模块下的,想创建一个控制器必须先创建模块:如‘app’
    • angular在执行控制器函数时,会根据参数的名字($scope)去自动的注入对象
      根据参数名称传递对应对象,所以必须要写正确的参数名称,如:$scope、$http
    • 由于压缩代码会改变参数名称,注册控制的标准方式就是通过第二个参数传递数组的方式(数组的成员最后一个就是原本的控制器函数,前面的成员都是需要注入的对象名称)


    注册控制器的标准写法:

    module.controller('HelloController', ['$scope','$http', function(a,b) {
          console.log(a);
        }]);

    3.$watch

    官方的API中提供了一个$scope.$watch方法

    $scope.$watch('user.username', function(now, old) {
            // 当user.username发生变化时触发这个函数
             console.log('now is ' + now);
            console.log('old is ' + old);
    });

    注意: angular 基本不用操作DOM,如果必要,可以使用angular提供的jqlite

    angular.element('body');
  • 相关阅读:
    alpha版本发布前的进度
    1.26~1.27
    1.23~1.25
    1月21日~1月22日工作情况
    1月17日工作情况
    1月16日小组开会
    1月15日工作进度
    1月12日~1月14日工作进度
    linux下的动态链接库管理
    小组第一次小组讨论
  • 原文地址:https://www.cnblogs.com/suxiaoxia/p/7221667.html
Copyright © 2011-2022 走看看