angularjs NG-展示与承诺前pression [英] angularjs ng-show with promise expression

查看:117
本文介绍了angularjs NG-展示与承诺前pression的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆