2014-03-01 39 views
0

我有以下控制器:Ember.js控制器需要另一個控制器 - 如何監聽更新?

Filters.FiltersProductsController = Ember.ArrayController.extend({ 
    needs: "filters", 
    filters: Ember.computed.alias("controllers.filters"), 
    content: function(){ 
     return this.store.findQuery('product', this.get('filters').getFilterParams()); 
    }.property() 
}); 

在我所想要的沿getFilterParams結果通過了初始頁面加載。

我有兩個問題:

  1. 我怎麼聽更新,並確保該findQuery呼叫再次運行時在FiltersController模型數據被改變?
  2. 有沒有更聰明的方法呢?

由於:-)

回答

1

的優選的方法是將具有content屬性依賴於控制器的model屬性。

content: function() { 
    return ... 
}.property('controllers.filters.model') 

如果filters控制器陣列控制器,你可能想要觀看[email protected]而不是model

+0

完美。因爲它是一個'ArrayController',所以觀看'content。@ each'。我有一個清除所有記錄的動作 - 這會觸發該函數被多次調用(在每個記錄刪除之間)。有沒有辦法來消除功能或類似的,使其不調用後端,直到所有的電話完成? – phidah

+0

我不認爲Ember有內置的方式來做到這一點。你必須爲此編寫自己的debouncing函數。 – GJK

+0

好的。謝謝您的幫助 :-) – phidah

相關問題