anjularjs常用的内置方法

1.$apply

  anjularjs通过$apply方法去执行脏检查,及时告诉model绑定变量更新。

  示例:定义一个date变量显示在页面上,它的控制器是firstCtrl,这个date变量有一个时钟功能,每一秒变一次。

    页面上:

      <div ng-controller="firstCtrl">

        {{date}}

      </dv>

    Controller.js:

      var firstCtrl=function($scope){

        $scope.date=new Date();

        setInterval(function(){

          $scope.$apply(function(){

            $scope.date=new Date();

          });    

        });

      }

2.$watch

  使用watch手动的监听某个基本变量或者对象变量,当变量或者对象变量改变的时候去触发某些事件。

  示例:监听name变量的变化,当name变量的变化超过30次,就不让其变化,并一直保持某个值。

    页面上:

      <div ng-controller="firstCtrl">

        <input type="text" ng-model="name"></input>

        {{name}}

      </div>

    controller.js:

      var firstCtrl=function($scope){

        $scope.name='小明';

        $scope.count=0;

        $scope.$watch('name',function(newValue,oldValue){

          ++$scope.count;

          if(scope.count>30){

            $scope.name='watch方法监听name变化超过30次之后不让其改变!';

          }

        });

      }

    注意:也许你会有这样的疑惑,$apply方法是触发脏检查的,但是watch方法里面的name变量和count居然也能自动变化?其实在apply方法去触发脏检查的时候,

    也是通过watch方法找到digest方法去判断并更新model的,所以道理是相同的。

    

posted @ 2016-04-18 16:51  博智星  Views(838)  Comments(0Edit  收藏  举报