Ember.js 过滤模型导致空数组
我有以下控制器:Ember.js 过滤模型导致空数组,ember.js,ember-data,Ember.js,Ember Data,我有以下控制器: 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_s
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。在我的应用程序中,我在几个不同的位置使用了过滤器,效果很好,但在这里,由于某些原因,它不起作用
你知道为什么吗?感谢您的帮助!谢谢 在尝试迭代之前,您应该确保技能已加载
var tac_skills;
store.find('skill').then(function(skills) {
tac_skills = skills.filter(....);
});
您可能应该使用路由/模型挂钩,而不是在控制器的init上获取模型。模型将在分配给控制器之前解析。然后你应该为你的战术技巧使用一个计算属性
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
});
这是有道理的:P谢谢你!!