我在绑定到模型的控制器中有一个文本框name
。控制器中有一个指令,指令中有另一个文本框,它绑定到同一个模型name
:
<div class="border" ng-controller="editCtrl">
Controller: editCtrl <br/>
<input type="text" ng-model="name" />
<br/>
<tabs>
Directive: tabs <br/>
<input type="text" ng-model="name"/>
</tabs>
</div>
mod.directive('tabs', function() {
return {
restrict: 'E',
transclude: true,
template:
'<div class="border" ng-transclude></div>',
};
});
当您在外部文本框中输入内容时,它会反映在内部文本框中,但如果您在内部文本框中输入内容,它将停止工作,即两个文本框不再反映相同的值。
参见示例:http: //jsfiddle.net/uzairfarooq/MNBLd/
我也尝试过使用两种方式绑定 attr ( scope: {name: '='}
) 但它给出了语法错误。使用scope: {name: '@'}
具有相同的效果。
任何帮助将不胜感激。
除了公认的答案,这篇文章确实帮助我理解了子 scpoes 中的原型继承。我强烈建议任何对范围有问题的人彻底阅读它。