我在理解 angularjs 如何决定如何评估属性时遇到了一些麻烦。例如,使用 ng-repeat
:
<div ng-repeat="item in items"></div>
item in items
部分将作为表达式求值,查找 Controller 中某处设置的 items
数组的内容。
但是使用ng-src
:
<img ng-src="/path/to/img/"></img>
path/to/img/
将被视为文字。如果我想让它“动态”,我必须写:
<img ng-src="/path/to/img/{{id}}"></img>
其中 id
在 Controller 中设置。
问题:在为自定义指令定义自定义属性时如何选择要遵循的行为?
最佳答案
没有什么可供选择。属性值中的表达式由 $interpolate
插值服务。后者使用 $parse评估字符串中每个表达式的服务。
有些指令(ng-if
、ng-hide
)除了属性中的表达式外别无所求,这通常在 API 文档中指定。在这种情况下,括号可以省略,表达式将在指令 - $scope.$watch
is being used often 中计算。而不是显式调用 $interpolate
。
ng-repeat
属性语法(在文档中称为 'repeat expression')由 the directive itself 解析并且与 Angular 表达式无关。
关于html - Angularjs 属性文字值与表达式评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33532878/