2013-10-17 32 views
0

濾波模型的結果,我有以下的控制器:在空數組

App.SkillsController = Ember.ArrayController.extend({ 
    init: function() { 
     var store = this.get('store'); 
     var skills = store.findAll('skill'); 
     this.set('model',skills); 
     console.log(skills); 
     var tac_skills = skills.filter(function(item,index,self){ 
       return true; 

     }); 
     console.log(tac_skills,'Tac Skills'); 
     this.set('tac_skills',tac_skills); 
    } 
}); 

的技能是正確裝載和模型正確設置。當我遍歷模型時,它們甚至可以正確地輸出到視圖中,但由於某種原因,tac_skills仍然作爲空數組返回,即使每個項都應該返回true。我在我的應用程序的幾個不同位置使用了過濾器,效果很好,但在這裏,出於某種原因,它不起作用。

任何想法爲什麼?任何幫助表示讚賞!謝謝!!

回答

0

你應該確保技能試圖超過他們迭代

var tac_skills; 
store.find('skill').then(function(skills) { 
    tac_skills = skills.filter(....); 
}); 
+0

這是有道理的:P謝謝你! – NicholasJohn16

0

你也許應該使用的路由/型號掛鉤,而不是在控制器的初始化,以獲得模型前被加載。該模型在分配給控制器之前將被解析。那麼你應該爲你的tac_skills使用一個計算的屬性。

App.SkillsRoute = Ember.Route.extend({ 
     model: function(){ 
      return this.get('store').findAll('skill'); 
     } 
}); 

App.SkillsController = Ember.ArrayController.extend({ 
     tac_skills: function(){ 
      return this.get('model').filter(function(item,index,self){ 
      return true; 
     }); 
     }.property(), // add dependencies here where relevent, for example if the 
        // filter options settings are changing and you want to recalculate 
        // tac_skills 
});