似乎使用直接属性和ng-attr-*指令做同样的事情.例如,以下呈现等效:
<div ng-attr-id="{{ 'object-' + value }}">ID</div>
<div id="{{ 'object-' + value }}">ID</div>
Run Code Online (Sandbox Code Playgroud)
我ng-attr-*什么时候应该使用,何时应该使用直接HTML属性?
Sie*_*ieg 13
ng-attr用于在上下文中添加或不添加属性.如果是表达式{{undefined || null}},则不添加属性,否则如果具有值,则将属性与值一起添加{{ value }}.最常见的情况是插值.相关:
在Angular指令模板中有条件地添加data-attribute
只有少数情况ng-attr-[attribute]="{{angular stuff}}"与 just 不同[attribute]="{{angular stuff}}"。如果不使用 ng-attr,某些浏览器中的某些元素可能会被破坏。Angular 的文档列出了几个例子:
- 尺寸的
<select>元素(参见问题1619)- 占位符在
<textarea>Internet Explorer中10/11(见问题5025)- 键入在
<button>Internet Explorer中11(见问题14117)- 值在
<progress>Internet Explorer中= 11(见问题7218)
来源:https : //docs.angularjs.org/guide/interpolation#-ngattr-for-binding-to-arbitrary-attributes
您可以将它们用于自定义html数据属性 - 例如,如果您想要一个让我们说myData的属性的话
<div ng-attr-myData="{{ 'object-' + value }}">ID</div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33966 次 |
| 最近记录: |