从文档中:
在表达式内部嵌入插值标记
注意:AngularJS指令属性采用带嵌入式表达式的表达式或插值标记。将插值标记嵌入表达式中被认为是不好的做法:
我正在寻找一个写得很好的规范答案,我可以向读者指出。
答案 0 :(得分:7)
从文档中:
为什么混合插值和表达式是不好的做法:
它增加了标记的复杂性
由于插值本身是一个指令,因此不能保证它对每个指令都有效。如果另一个指令在插值运行之前访问属性数据,它将获得原始插值标记而不是数据。
它会影响性能,因为插值法将另一个观察者添加到示波器中。
答案 1 :(得分:4)
期望布尔值的指令将不起作用:
错误
<input type="checkbox" ng-hide ="{{x.thenumber === null}}" />
当表达式的计算结果为布尔值false
时,插值将返回字符串"false"
。长度大于零的字符串为truthy。 ng-hide
伪指令将始终隐藏并且从不显示输入元素。
正确
<input type="checkbox" ng-hide="x.thenumber === null" />