1

我有两个共享同一工厂的控制器。其中一个控制器正在更新工厂变量。其他人应注意该更改并稍后显示。

这就是我尝试的方式: http ://plnkr.co/edit/q1NS6ytRduLlbcgJlnDU?p=preview

但它不起作用。跨控制器共享变量的最佳和正确方法是什么?如何使我的代码工作?

4

1 回答 1

4

您的问题与 AngularJS 有关,而是与 JavaScript 中原始值的闭包行为有关。简而言之,如果你有一个原始类型的闭包,它就是一个可以在你的本地函数中访问的复制值。您正在失去与原始变量的连接,并且无法从本地范围修改它。

将原始值更改为对象引用,您的代码将按预期开始工作:http ://plnkr.co/edit/gEQ2KPsEEtBRfTbjqPcO?p=preview

于 2013-04-21T17:07:36.297 回答