我试图将模型商店返回到我的模板中,但在我返回之前,我希望按某个属性进行过滤,只返回那些具有该属性的记录。此外,在我的模型中,我覆盖了默认的“ID”。用序列化器。
在我的控制台中,我没有定义"商店未定义ReferenceError:商店未定义"有什么想法吗?
这是我的路线:
import Ember from 'ember';
import DS from 'ember-data';
export default Ember.Route.extend({
model: function() {
return this.store.find('link').then(function(links) {
return store.filter('link', { linkTypeCode: 'NSL' });
});
}
});
型号:
import DS from 'ember-data';
export default DS.Model.extend({
artifactId : DS.attr('number'),
artifactName : DS.attr('string'),
linkTypeCode : DS.attr('string')
});
答案 0 :(得分:8)
您的路线正在拨打store
而不是this.store
。由于这是在异步回调中,this.store
也需要缓存到变量。
此外,一旦您解决了这个问题,您的过滤器就会遇到错误。过滤器需要一个函数。
import Ember from 'ember';
import DS from 'ember-data';
export default Ember.Route.extend({
model: function() {
var Store = this.store;
return Store.find('link').then(function(links) {
return Store.filter('link', function (record) {
return record.get('linkTypeCode') === 'NSL';
});
});
}
});
我还会注意到DS.filter
会返回一个实时记录数组,这意味着它的记录始终与商店了解的记录保持同步。可以执行以下操作。
Store.find('link');
return Store.filter('link', function (record) {
return record.get('linkTypeCode') === 'NSL';
});