我有一個變量數組(我將其稱爲ArrVar),它可通過服務提供給所有控制器。該變量已被指定爲範圍變量CtrlA as $ scope.ArrVar。如果用戶在CtrlA下切換按鈕,則附加到CtrlA的方法將更改爲$ scope.ArrVar,更新服務中的變量並使用ng-repeat顯示列表。控制器間共享範圍變量的最佳做法是什麼?
但我有一個完全獨立的控制器,CTRLB,這需要做下CTRLA,這是不可訪問從CTRLB變化範圍變量。
我能想到的兩種解決方案:
- 全局控制器
- 在根範圍
分配變量,但兩種方法似乎並沒有成爲最佳實踐。有沒有其他優雅的方式呢?兩個控制器完全不同,所以合併不會。
我想大多數人通常與SharedServices去。在這個網站上有幾個關於他們的問題。 – dckuehn 2014-11-08 05:38:14
但服務不允許更新範圍變量。 CtrlB可以通過使用該服務來接收最新更新的ArrVar,但它無法訪問$ scope.ArrVar,它在CtrlA – Jas 2014-11-08 05:42:47
的範圍內您可以更新屬於共享服務的變量,並觀察該變量從一個控制器。當該值改變時,CtrlB可以執行一個動作,更新由CtrlA監視的另一個sharedService變量,然後觸發另一個動作。 – dckuehn 2014-11-08 05:44:32