我只是想知道为什么我需要为 ng-href 添加双大括号,而其他一些指令不需要它们?
<a ng-href="{{myScopeVar}}" ng-if="myScopeVar">link</a>
请注意ng-href
需要大括号同时ng-if
没有。
我不太确定你的问题。但我认为您想知道为什么角度指令中有不同的语法样式。首先,请大家看一下这篇文章:Angular JS 中双花括号和单花括号的区别? https://stackoverflow.com/questions/17878560/difference-between-double-and-single-curly-brace-in-angular-js答案解释了之间的区别{{}}
, {}
并且没有大括号。
对于您的具体示例,如文档中所述:ng-href
需要一个模板(任何可以包含{{}}
标记),而 ng-if 需要一个表达式 - 例如你可能不会写{{}}
,因为 Angular 对其进行评估。
如果你看一下你会看到的角度源,ng-href
uses attr.$observe
而 ng-if 使用$scope.$watch
功能。每次属性值发生更改时都会调用 $observe。当表达式产生新值时,调用 $watch。
但为什么会有这两种不同的方式呢?我认为一点是更容易使用和代码可读性。现在你可以写:
<a ng-href="http://yourdomain.com/users/{{userId}}/post/{{postId}}">title</a>
可以看到,只写了动态插入的表达式userId
and postId
价值观。如果ng-href
也会使用$watch
我们必须编写的函数(不要这样做,因为它不起作用 - 它只是展示了差异):
<a ng-href="'http://yourdomain.com/users/'+userId+'/post'+postId">title</a>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)