我有一个指令,我使用以下方法绑定属性:
scope: {modelVar: "="}
指令模板使用该变量:
<input ng-model="modelVar">
这很好用,直到我将此指令嵌入到另一个指令中。然后,输入指令位于子范围内,与父级的绑定停止工作。
我找到的解决方案是将 modelVar 放在范围内的某个属性中。但是,我需要在我的指令中添加一个控制器,并在这个新属性和直接在范围内的属性之间设置我自己的双向绑定。
有没有一种简单的方法可以避免双向绑定?
我有一个指令,我使用以下方法绑定属性:
scope: {modelVar: "="}
指令模板使用该变量:
<input ng-model="modelVar">
这很好用,直到我将此指令嵌入到另一个指令中。然后,输入指令位于子范围内,与父级的绑定停止工作。
我找到的解决方案是将 modelVar 放在范围内的某个属性中。但是,我需要在我的指令中添加一个控制器,并在这个新属性和直接在范围内的属性之间设置我自己的双向绑定。
有没有一种简单的方法可以避免双向绑定?
该指令inputControl
可以简化为
app.directive('inputControl', function () {
return {
restrict: 'A',
template: '<div control-container>Input: <input ng-model="$parent.modelVar"></div>',
scope: {
'modelVar': '='
}
}
});
这是范围图
[div inputControl] [modelVar]
^
| |
[controlContainer] [$parent.modelVar] <-new scope S
| |
transcluded [Value] <- transcluded scope, not isolated scope, it should be sibling of the new scope S