2

我需要在同一指令的两个实例之间共享一个属性。这是一个 plunkr 来帮助我解释我的意思。

http://plnkr.co/edit/wsrSxq?p=preview

两个框的左侧位置应该通过scope.left值链接在一起,但是如果我 $watch 更改它将不起作用,因为我怀疑指令会在循环中影响自身。

有什么建议吗?谢谢

4

1 回答 1

2

唯一缺少的是调用scope.$apply以便触发手表。由于更改范围值的事件处理程序是从应用程序的“外部”进行的,$apply因此需要将更改通知 Angular。取消注释两个注释行并更改:

scope.left = newX;

scope.$apply(function(){
    scope.left = newX;
});
于 2013-06-26T02:27:50.223 回答