相关疑难解决方法(0)

双向绑定不在指令中与transcluded范围一起工作

我在控制器中有一个绑定模型的文本框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的原型继承.我强烈建议任何有范围问题的人彻底阅读.

javascript angularjs

58
推荐指数
2
解决办法
3万
查看次数

标签 统计

angularjs ×1

javascript ×1