我正在使用ng-show和一个解析为一个布尔值的承诺的表达式.当我这样做,我得到10个摘要迭代溢出.
见http://plnkr.co/edit/XibYM0kCnXhKjNUeTsp3?p=preview
<body ng-controller="MainCtrl">
<p ng-show="returnsABoolean()">non promise</p>
<p ng-show="returnsAPromiseThatResolvesToABoolean()">promise</p>
</body>
按Ctrl:
$scope.returnsABoolean = ()->
true
$scope.returnsAPromiseThatResolvesToABoolean = ()->
$q.when(false)
我知道{{somePromise}}将会解决,但是{{returnsAPromiseThatResolvesToABoolean()}}似乎引起同样的问题.
有任何想法吗?我期望这个工作..
解决方法
AngularJS自动解决了模板绑定的承诺.然而,您应该使用ng-init中的承诺来阻止摘要循环每次打勾时返回新的承诺.
<p ng-init="v=returnsAPromiseThatResolvesToABoolean()" ng-show="v">promise</p>