2016-03-17 34 views
0

我有一個Ember應用程序,它有一個帶有幾個下拉菜單的模板(下拉菜單位於component.hbs中)。 在component.js中,有一個自定義數組(成分),它從模型中獲取對象,並根據選擇對其進行過濾。 問題是數據不會自動刷新以下選擇器,我必須刷新網站才能看到下一個選項。灰燼。重新渲染組件中的自定義數組。選擇器

例如:2個選擇器:「recipies」和「配料」 用戶選擇「肉餅」。成分選擇器,將從組件中的自定義數組中取得數據,不會刷新自身以僅顯示肉餅的成分。 我假設發生這種情況是因爲component.hbs(和ingredientes數組)在用戶訪問網站時已被渲染和加載,但我需要找到一種方法來刷新配料陣列,每次用戶選擇配方

回答

0

定義組件中的計算屬性,每當selectedRecipe更改時都將重新計算該屬性。

ingredients:Ember.computed('selectedRecipe', function(){ 
// do filtering stuff and return the result 
return this.get('customArray').filterBy('name',this.get('selectedRecipe')); 
}) 
+0

你能提供一個setupController代碼的例子嗎? – Wesley

+0

類似的東西?: setupController:function(controller,model)this._super(controller,model); Ember.set(模型,'成分',成分數組); Ember.set(model,'price',pricesArray); }, – Wesley

+0

應該在控制器中定義數組以使其工作嗎? – Wesley

0

所以,我只是想通了。 這比我想象的更簡單。 在用戶選擇配方時觸發的相同動作中,我清空配料的數組,然後用與選擇相關的成分填充它。