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