我需要在同一指令的两个实例之间共享属性。 这是一个 plunkr 来帮助我解释我的意思。
http://plnkr.co/edit/wsrSxq?p=preview
两个框的左侧位置应通过 scope.left
值链接在一起
但如果我 $watch 进行更改,它将不起作用,因为我怀疑该指令会循环影响自身。
有什么建议吗?谢谢
最佳答案
唯一缺少的是对 scope.$apply
的调用,以便触发监视。由于更改范围值的事件处理程序是从应用程序的“外部”执行此操作,因此需要 $apply
来通知 Angular 该更改。取消注释两行注释并更改:
scope.left = newX;
至
scope.$apply(function(){
scope.left = newX;
});
关于javascript - 通过公共(public)属性绑定(bind)指令实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17310443/