问题:
使用angularjs 1.3.0 beta 15,我试图“绑定”到从服务器获取的对象的属性:
<div ng-if="::(myObject.foo === 'bar')"></div>
如果在加载此html时尚未提取myObject
(其承诺未解决),则angular将表达式评估为false(无论当然是什么值),并停止观看它。
我宁愿避免的可能的解决方法:
::
当然解决了这个问题 - 不是一种选择(性能方面)foo
替换为isFooEqualsBar
,在myObject
解析后获取其值(并绑定到::isFooEqualsBar
) - 它需要大量新属性< / LI>
这是一个错误吗?或者我使用::
语法错误了?
答案 0 :(得分:5)
一次性表达式会在稳定后停止重新计算, 如果表达式结果为a,则在第一次摘要后发生 非未定义的值(参见下面的值稳定算法)。
我认为问题是你的表达在第一次摘要后是假的。
undefined === 'bar' is false.
也许像
<div ng-if="::(myObject.foo ? myObject.foo === 'bar' : undefined)"></div>