【发布时间】:2017-03-03 22:57:31
【问题描述】:
亲爱的朋友们,
我们可以将指令的范围属性绑定到 DOM 属性的值。
这行得通:
module.directive 'MyDirective', ->
scope:
directiveVar: '='
...
<div class='MyDirective' directive-var='parentVar'></div>
在上面的示例中,我们将指令的directiveVar 属性绑定到父作用域的parentVar 属性。
这是一个双向绑定,所以如果directiveVar 被更改,parentVar 会自动更新,反之亦然。
我的问题是:
有没有办法可以绑定指令范围的深层子属性?喜欢scope.lv1.directiveVar 或scope.lv1.lv2.lv3.directiveVar 而不是scope.directiveVar?
我想要达到的目标
我在指令范围内有一个名为 lv1 的对象。我想将其属性directiveVar 绑定到父属性。
这不起作用:
scope:
lv1:
directiveVar: '='
这不起作用:
scope:
"lv1.directiveVar": '=myVar'
演示
这是有效的:http://plnkr.co/edit/OClnZ2Cl3BXr60PC2qVP?p=preview
这就是我想要实现的:http://plnkr.co/edit/tQEHeKOzGjGyplCwUtU2?p=preview
【问题讨论】:
-
您需要这个的意图/目的是什么?你想达到什么目的? (它可能会帮助人们给你一个更好的答案)。孩子的作用域是更多指令还是指令和控制器?
-
同意,这里没有足够的信息来说明您想要实现的目标。如果 parentVar/myVar 是一个对象,你应该使用 '=' 而不是 '@' 来绑定到对象而不是字符串。
-
@CorySilva 感谢您的反馈。我想实现:我想绑定一个深层属性,而不是绑定我的指令范围的根属性。更新了问题以使其更清楚。
-
@CraigSquire 感谢您的纠正。我的意思是“=”而不是“@”。很抱歉造成混乱。
标签: angularjs coffeescript angularjs-directive angularjs-scope