html - Angularjs 属性文字值与表达式评估

标签 html angularjs attributes

我在理解 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-ifng-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/

相关文章:

html - 需要帮助弄清楚为什么这个 slider 不会在 ie9/10 中翻转到背景

javascript - 如何从 Angular 自定义表单控制指令中获取 a 的父表单?

python - 创建一个允许调整基值的属性类?

angularjs - AngularJS 中的用户身份验证和角色

c# - In 和 Out 属性在 .NET 中如何工作?

c# - 我可以让 Moq 为模拟类添加属性吗?

javascript - 下拉菜单仅在主页上加载页面时打开

html - block 引用底部的折叠边距/填充

JQuery 对话框帮助

javascript - 如果图像尺寸很大,请禁用 angularjs 表单提交按钮