为什么混合插值和表达式是不好的做法

时间:2018-07-30 10:35:08

标签: angularjs

从文档中:

  

在表达式内部嵌入插值标记

     
    

注意:AngularJS指令属性采用带嵌入式表达式的表达式插值标记。将插值标记嵌入表达式中被认为是不好的做法

  
     

— AngularJS Developer Guide - Interpolation

我正在寻找一个写得很好的规范答案,我可以向读者指出。

2 个答案:

答案 0 :(得分:7)

从文档中:

  

为什么混合插值和表达式是不好的做法:

     
      
  • 它增加了标记的复杂性

  •   
  • 由于插值本身是一个指令,因此不能保证它对每个指令都有效。如果另一个指令在插值运行之前访问属性数据,它将获得原始插值标记而不是数据。

  •   
  • 它会影响性能,因为插值法将另一个观察者添加到示波器中。

  •   
     

AngularJS Developer Guide - Interpolation

答案 1 :(得分:4)

期望布尔值的指令将不起作用:

  

错误

<input type="checkbox" ng-hide ="{{x.thenumber === null}}" />

当表达式的计算结果为布尔值false时,插值将返回字符串"false"。长度大于零的字符串为truthyng-hide伪指令将始终隐藏并且从不显示输入元素。

正确

 <input type="checkbox" ng-hide="x.thenumber === null" />
相关问题