我想绑定/设置一些布尔属性到指令。但我真的不知道如何做到这一点,并实现以下行为。
想象一下,我想为一个结构设置一个标志,让我们说一个列表是可折叠的或不可折叠的。我有以下HTML代码:
<list items="list.items" name="My list" collapsable="true"></list>
我希望collapsable属性可以在列表的$ scope中通过传递一个值(true,false或任何),一个双向绑定
<list items="list.items" name="{{list.name}}" collapsable="list.collapsed"></list>
我正在开发一些UI组件,我想提供多种方式与他们交互。也许,时间上,有些家伙想通过传递一个对象的属性到属性来知道该组件的状态,或者是折叠或不折叠。
有办法实现吗?请纠正我,如果我错过了什么或我错了。
谢谢
您可以配置您自己的单向数据绑定行为为booleans像这样:
link: function(scope,element,attrs) { attrs.$observe('collapsable',function() { scope.collapsable = scope.$eval(attrs.collabsable); }); }
使用$ observe这里的意思是你的“watch”只受属性更改的影响,如果你直接更改$ scope.collapsable在你的指令内,不会受到影响。