angularjs NG-展示与承诺前pression [英] angularjs ng-show with promise expression
问题描述
我用 NG-节目
与解析为一个前pression一个的诺的解析为一个布尔值。当我这样做,我得到了10次迭代消化溢出。
I'm using ng-show
with an expression that resolves to a promise that resolves to a boolean. When I do this I get the 10 digest iterations overflow.
请参阅http://plnkr.co/edit/XibYM0kCnXhKjNUeTsp3?p=$p$pview
<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()}}
似乎导致同样的问题。
I know that {{somePromise}}
will resolve, but {{returnsAPromiseThatResolvesToABoolean()}}
seems to cause the same issue.
任何想法?我期望这个工作。
Any ideas? I'd expect this to work..
推荐答案
AngularJS解决模板自动绑定的承诺。然而,你应该从返回一个新的承诺,每一个刻度使用 NG-INIT
的承诺,以prevent消化周期。
AngularJS resolves the promise for template binding automatically. However, you should use the promise in ng-init
to prevent the digest cycle from returning a new promise every tick.
<p ng-init="v=returnsAPromiseThatResolvesToABoolean()" ng-show="v">promise</p>
这篇关于angularjs NG-展示与承诺前pression的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!