来自Docs:
在表达式中嵌入插值标记注意:AngularJS指令属性采用嵌入式表达式的表达式或插值标记 . 在表达式中嵌入插值标记被认为是不好的做法: - AngularJS Developer Guide - Interpolation
我正在寻找一个写得很好的规范答案,我可以向读者指出 .
为什么混合插值和表达式是不好的做法:它增加了标记的复杂性无法保证它适用于每个指令,因为插值本身就是一个指令 . 如果另一个指令在插值运行之前访问属性数据,它将获得原始插值标记而不是数据 . 它会影响性能,因为插值会为范围增加另一个观察者 . AngularJS开发人员指南 - 插值
期望布尔值的指令不起作用:
ERRONEOUS <input type =“checkbox”ng-hide =“{{x.thenumber === null}}”/>
当表达式求值为布尔值 false 时,插值将返回字符串 "false" . 长度大于零的字符串是truthy . ng-hide 指令将始终隐藏,并且永远不会显示输入元素 .
false
"false"
ng-hide
正确
<input type="checkbox" ng-hide="x.thenumber === null" />
2 回答
来自Docs:
期望布尔值的指令不起作用:
当表达式求值为布尔值
false
时,插值将返回字符串"false"
. 长度大于零的字符串是truthy .ng-hide
指令将始终隐藏,并且永远不会显示输入元素 .正确