1
我有两个控制器共享相同的工厂。其中一个控制器正在更新工厂变量。其他人应该留意这种变化并在稍后显示。Angularjs - 交叉控制器工厂更新
这是我尝试: http://plnkr.co/edit/q1NS6ytRduLlbcgJlnDU?p=preview
但它不工作。在控制器之间共享变量的最佳和正确的方法是什么?如何使我的代码工作?
我有两个控制器共享相同的工厂。其中一个控制器正在更新工厂变量。其他人应该留意这种变化并在稍后显示。Angularjs - 交叉控制器工厂更新
这是我尝试: http://plnkr.co/edit/q1NS6ytRduLlbcgJlnDU?p=preview
但它不工作。在控制器之间共享变量的最佳和正确的方法是什么?如何使我的代码工作?
您的问题与AngularJS有关,但与原始值的JavaScript中的闭包行为有关。总之,如果你有一个原始类型的闭包,它是一个复制的值,可以在你的本地函数中访问。您正在断开与原始变量的连接,并且无法从本地范围对其进行修改。
更改原始值的对象引用您的代码将开始按预期方式工作:http://plnkr.co/edit/gEQ2KPsEEtBRfTbjqPcO?p=preview
那么,是厂家在这个例子单身?我认为只有服务是单身。 – finishingmove 2013-04-21 17:11:06
@finishingmove工厂和服务是单身人士。 – ewooycom 2013-04-21 17:16:29
@finishingmove .factory,.service和.provide只是描述如何创建对象实例(通常称为AngularJS术语中的服务)的不同方式。所有这些对象都是单身人士。不幸的是,“服务”这个词有点超载,所以很容易混淆。 – 2013-04-21 17:20:50