【发布时间】:2013-03-19 18:02:09
【问题描述】:
我需要能够基于作用域上的布尔变量向元素添加例如“contenteditable”。
使用示例:
<h1 attrs="{'contenteditable=\"true\"': editMode}">{{content.title}}</h1>
如果 $scope.editMode 设置为 true,将导致 contenteditable=true 添加到元素中。
有没有一些简单的方法来实现这个类似 ng-class 的属性行为?如果没有,我正在考虑写一个指令并分享。
编辑: 我可以看到我提出的 attrs 指令和ng-bind-attrs, but it was removed in 1.0.0.rc3 之间似乎有一些相似之处,为什么会这样?
【问题讨论】:
-
我没有遇到过这样的事情。我投票去做! :D 也许将它提交给 Angular 项目。更好地匹配 ng-class 的语法会很好。
ng-attr="expression". -
我肯定认为是的!
-
这确实与 ngClass 或 ngStyle 不同,因为它们控制 single 属性,而您想要控制 any 属性。我认为创建一个
contentEditable指令会更好。 -
@JoshDavidMiller 对此 +1。我认为能够控制任何属性都有一点好处,尤其是考虑到复杂性。您可以让指令有条件地作用于变量。
-
<h1 ng-attr-contenteditable="{{editMode && true : false}}">{{content.title}}</h1>
标签: angularjs angularjs-directive