在路由器中过滤 ember 模型
Filtering ember model in router
我正在尝试 return 将模型存储到我的模板中,但在我执行 return 之前,我想按某个 属性、return 进行过滤仅查看那些具有 属性 的记录。此外,在我的模型中,我用序列化程序覆盖了默认值 'id'。
在我的控制台中,我收到 "store is not defined ReferenceError: store is not defined" 有什么想法吗?
这是我的路线:
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')
});
您的路线正在呼叫 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
returns 一个实时记录数组,这意味着它的记录始终与商店了解的记录保持同步。可以执行以下操作。
Store.find('link');
return Store.filter('link', function (record) {
return record.get('linkTypeCode') === 'NSL';
});
我正在尝试 return 将模型存储到我的模板中,但在我执行 return 之前,我想按某个 属性、return 进行过滤仅查看那些具有 属性 的记录。此外,在我的模型中,我用序列化程序覆盖了默认值 'id'。
在我的控制台中,我收到 "store is not defined ReferenceError: store is not defined" 有什么想法吗?
这是我的路线:
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')
});
您的路线正在呼叫 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
returns 一个实时记录数组,这意味着它的记录始终与商店了解的记录保持同步。可以执行以下操作。
Store.find('link');
return Store.filter('link', function (record) {
return record.get('linkTypeCode') === 'NSL';
});