我在控制器中有一个绑定模型的文本框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>
Run Code Online (Sandbox Code Playgroud)
mod.directive('tabs', function() {
return {
restrict: 'E',
transclude: true,
template:
'<div class="border" ng-transclude></div>',
};
});
Run Code Online (Sandbox Code Playgroud)
当您在外部文本框中键入内容时,它会反映在内部文本框中,但如果您在内部文本框中键入内容,它将停止工作,即两个文本框不再反映相同的值.
请参阅示例:http://jsfiddle.net/uzairfarooq/MNBLd/
我也试过使用双向绑定attr(scope: {name: '='})但它给出了语法错误scope: {name: '@'}.并且使用具有相同的效果.
任何帮助将不胜感激.
除了接受的答案,这篇文章确实帮助我理解了儿童scpoes的原型继承.我强烈建议任何有范围问题的人彻底阅读.