为什么$ digest()会崩溃

时间:2014-07-05 13:38:39

标签: angularjs

在以下AngularJS代码中:

<!doctype html>
<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.18/angular.min.js" ></script>
  </head>
    <script type="text/javascript">
      var myApp = angular.module('myApp', []);

      myApp.controller('MainCtrl', ['$scope', '$rootScope', function ($scope, $rootScope)
      {
           // let's assume that scope was dependency injected as the $rootScope
           var scope = $rootScope;
           scope.name = 'misko';
           scope.counter = 0;

           scope.$watch('name', function(newValue, oldValue)
           {
             scope.counter = scope.counter + 1;
           });

           scope.$digest();

      }]);

  </script>
  <body>
    <div ng-app="myApp">
      <div ng-controller="MainCtrl">
        <div id="divCool" ng-show="false">Cool</div>
      </div>
    </div>
  </body>
</html>

范围$消化();崩溃,但我不知道为什么。我直接从angularjs.org

中获取了控制器内部的代码

1 个答案:

答案 0 :(得分:3)

没有理由在该上下文中调用digest。 Angular为您管理。实际上,你几乎不需要使用该功能,但最常见的是apply

在这种情况下,代码取自单元测试环境中的角度文档,在设置测试条件后,需要自己刷新范围。