我有一個列出相冊的應用程序。當同時點擊AlbumView
和App.overlay
(也是一個視圖)時,會顯示相冊。Ember的可靠觀點
App.overlay = Ember.View.create({...})
(與燈箱一樣疊加)。
和:
App.AlbumView = Ember.View.extend({
// close the selected album view by closing the overlay
close: function() {
App.overlay.close();
}
});
而這裏的問題:我希望能夠通過點擊疊加關閉這些兩種觀點,但我想覆蓋到保持的AlbumView
獨立,讓我可以在其他地方使用覆蓋(即不要在兩者之間引入耦合)。我該怎麼做?
這是我目前的執行情況,緊耦合的,我真的不喜歡:
App.overlay = Ember.View.create({
// handle clicking anywhere on the overlay
click: function() {
this.close();
},
// close the overlay (setting selectedAlbum's controller content to null hides the AlbumView)
close: function() {
App.selectedAlbumController.set('content', null); // this should not be here
this.remove();
}
});
這並不能解決任何問題。它只隱藏了原始問題(耦合)。想象一下,我會有10個不同的「selectedSomething」控制器。然後我需要在這個方法中放置10個不同的行,比如'set('content',null)'。絕對不是要走的路。 – 2012-03-20 13:59:15