在以下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
中获取了控制器内部的代码答案 0 :(得分:3)
没有理由在该上下文中调用digest
。 Angular为您管理。实际上,你几乎不需要使用该功能,但最常见的是apply
。
在这种情况下,代码取自单元测试环境中的角度文档,在设置测试条件后,需要自己刷新范围。