Angularjs - 交叉控制器工厂更新

时间:2013-04-21 16:15:34

标签: javascript angularjs

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

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

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

1 个答案:

答案 0 :(得分:4)

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

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