控制器間的關係我在灰燼實現的應用方案,基本上遵循這樣的佈局:正確的方式來處理與Ember.js
的概念是,用戶可以在互動功能地圖視圖(始終存在)和基本導航發生在父視圖中的各種視圖和任意的子視圖堆棧之間。用戶可以在地圖上創建新的功能,編輯現有的等
特定功能的URL可以是/特徵/ 123 /編輯
由於輸入到我的交互面板是非常依賴與互動地圖視圖(繪製一個多邊形,放置一個標記等)我的這些視圖的控制器被設置爲「需要」地圖控制器。當存在特定的面板視圖時,與地圖的交互應以各種方式影響面板。
我的問題是 - 如何做一個規模如此緊張的控制器結合?我基本上需要根據哪個面板當前處於活動狀態在不同的地圖模式之間切換。我相信,我也需要觀察地圖上的事件,並根據當前的活動面板採取相應的行動。
我設置了某個子視圖控制器觀察地圖控制器的某些屬性(例如.observes(「controllers.map.activecoords」))的概念證明,但是,這樣的觀察者將繼續觸發用戶已經從特定的子視圖導航(即一旦控制器被初始化),我必須在進入和離開路徑時手動設置和拆除這些觀察者(即使用addObserver)嗎?這是正確的模式嗎?我得到了一個印象,那就是我需要在轉換過程中手動刪除所有這些觀察者,以避免出現意外行爲和內存泄漏。阿瓦ys目前的地圖與不同的國家和互動面板互通?
jsbin或者一些代碼會有幫助 – Rigel
Rigel,我可以嘗試從我的設置中提取一些相關的部分,但是我更關心如何實現這個概念而不是涉及到的確切操作。例如充足的如何控制器可以與觀察員耦合,而不會在後臺發生某些控制器視圖當前沒有活動時發生的事情.. – averas
我不確定Ember是否具有您想要的常用習慣用法。 Ember傾向於將其所有數據(模型,控制器,路線,模板等)視爲非常分層,其中單個節點是關注的焦點。我要做的第一件事(只是爲了讓它工作),就是將「主動」屬性放在控制器上,如果它是「假」,拒絕響應動作。從那裏,我認爲找到一個乾淨,有用的習慣用法只是試錯。 – GJK