export default DS.Model.extend({
books: hasMany('book', { async: true }),
});
书:
export default DS.Model.extend({
title: DS.attr('string'),
state: DS.attr('number'),
});
在我的控制器中我得到一个用户作为我的模型,我想创建一个像这样的计算属性
activeBooks: Ember.computed('model.books', function() {
var books = this.get('model.books').filter(function (book, index, array) {
// debugger;
return (this.get('book.state') === 1);
}.bind(this));
return books;
}),
但过滤器不工作,基本上返回一个空数组。
P.S 1.我一边用书一边装书。在调试器行,我查询this.get('user.books.length')
我得到每个用户的正确书籍数量。谁能指出我在这里做错了什么?
非常感谢!
答案 0 :(得分:0)
您可以使用filterBy
并返回结果。
activeBooks:Ember.computed('model.books', function() {
return this.get('model.books').filterBy('state',1);
})
您不需要在过滤功能中使用bind(this)
。