AngularJS控制器和指令之间的双向绑定不起作用

时间:2014-02-26 20:50:17

标签: javascript angularjs

好的,所以我在这里看到了很多这些问题,但我必须错过一些微不足道的事情。

请查看此Plunkr

其中有一个简单的控制器可以设置图像网址。还有一个指令从脚本标记加载到模板中。

我已将其设置为使指令在2秒后更改imageUrl,但我没有看到任何双向绑定发生。图像应该改变,以及文本。

有人可以解释一下我在这里缺少的东西吗?

我也在控制器中尝试了超时。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

原因是您正在使用setTimeout更改模型。 Angular并不知道这一点,因为它发生在Angular的“外部”。相反,使用Angular的$ timeout:

http://plnkr.co/edit/9qYpFdnlaOy3QBDDkBUQ?p=preview

有一种方法可以在setTimeout中设置scope.$apply()之后通过调用scope.imageUrl手动告诉Angular您已对模型进行了更改,但最好使用$ timeout,因为它会自动发生