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);
    }
});

スキルが正しくロードされ、モデルが正しく設定されています。モデルを反復処理すると、ビューに正しく出力されますが、何らかの理由で、各項目が true に返されるはずなのに、tac_skills が空の配列として返され続けます。アプリのいくつかの異なる場所でフィルターを使用していますが、うまく機能しますが、ここでは何らかの理由で機能しません。

理由はありますか?どんな支援も大歓迎です!ありがとう!!

4

2 に答える 2

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
 });
于 2013-10-18T10:16:19.273 に答える