我只是想知道为什么我需要为ng-href添加双花括号,而其他一些指令却不需要它们呢?
<a ng-href="{{myScopeVar}}" ng-if="myScopeVar">link</a>
请注意,ng-href
不需要时需要大括号ng-if
。
我不太确定你的问题。但是我认为您想知道为什么在角度指令中会有不同的语法样式。首先,请看一下这篇文章:角度JS中的双花括号和单花括号之间的区别?答案解释之间的差别{{}}
,{}
并没有大括号。
对于具体示例,如文档中所述:ng-href
需要模板(可以包含{{}}
标记的任何字符串),而ng-if需要表达式-例如,您可能不会编写{{}}
,因为angular会对其进行评估。
如果你看一下角来源,你会看到,ng-href
用途attr.$observe
而NG-如果使用的$scope.$watch
功能。$ observe在属性值的每次更改时进行计算。当表达式产生新值时,将调用$ watch。
但是为什么这两种不同的方式呢?我认为一点是更容易使用和代码可读性。现在您可以写:
<a ng-href="http://yourdomain.com/users/{{userId}}/post/{{postId}}">title</a>
如您所见,您只为动态插入userId
和postId
值编写了一个表达式。如果ng-href
还要使用$watch
我们必须编写的函数(不要这样做,因为它不起作用-只是演示了区别):
<a ng-href="'http://yourdomain.com/users/'+userId+'/post'+postId">title</a>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句