共享范围变量不会跨指令更新

时间:2017-04-28 16:04:13

标签: javascript angularjs angularjs-directive

我有一个奇怪的指令问题,我正在尝试创建plunkr,但在此之前将其发布到SO,看看我是否得到任何回复。

我在控制器中有一个跟随变量:

$scope.sharedVar = [];
$scope.loopIs = ["var1", "var2", "var3"];

现在我通过ng-repeat将这个变量传递给direective:

<div class="" ng-repeat="val in loopIs">
  <my-directive val="val" sharedVar="sharedVar"></my-directive>
</div>

这是我的指示:

app.directive(myDirective){
 return {
  restrict: 'E',
  scope: {
    val: '=val',
    sharedVar: '=sharedVar'
   },
   templateUrl: 'template.html',
   link: function(scope){
      //...........My logic here
   }
  }
}

sharedVar是跨指令共享的,所以如果它从任何指令更改,我希望它能够更新。

任何人都可以帮助我。我在ng-repeat中的指令做错了吗?

======更新======

我添加了plunkr ..请看一下。

https://plnkr.co/edit/lhE3UwjJzqNgk2jd8BIV?p=preview

1 个答案:

答案 0 :(得分:1)

使用$parent作为 ng-repeat 创建单独的范围

 <my-directive val="val" shared-var="$parent.sharedVar"></my-directive>

Working Demo