添加Ember数据查询辅助方法
Add Ember Data query helper method
我正在使用 Ember API 和 JSON API 后端。 API 接受这样的过滤器:
/users?filter[simple][name]=John
现在,每当我想进行查询时,我都会这样做:
this.store.query('users', {
filter: {
simple: {
name: 'John'
}
}
});
最好通过添加一个像这样工作的辅助函数来避免这种冗长:
this.store.simpleQuery('users', { name: 'John' });
该函数会将其参数直接传递给 query()
,只是将查询包装在 { filter: { simple: ... } }
.
中
这可能吗?我该怎么做?
是什么阻止您在适配器中创建自己的方法来做到这一点?
// ... your adapter code
simpleQuery: function(modelName, query) {
return this.store.query('users', {
filter: {
simple: {
name: 'John'
}
}
});
}
// ...
您需要扩展默认商店。将以下内容添加到 app/services/store.js
import DS from 'ember-data';
export default DS.Store.extend({
simpleQuery(modelName, query) {
return this.query(modelName, {
filter: { simple: query }
});
},
simpleQueryRecord(modelName, query) {
return this.queryRecord(modelName, {
filter: { simple: query }
});
}
});
你将能够做到这一点:
this.store.simpleQuery('users', { name: 'John' });
this.store.simpleQueryRecord('users', { email: 'john@example.com' });
我正在使用 Ember API 和 JSON API 后端。 API 接受这样的过滤器:
/users?filter[simple][name]=John
现在,每当我想进行查询时,我都会这样做:
this.store.query('users', {
filter: {
simple: {
name: 'John'
}
}
});
最好通过添加一个像这样工作的辅助函数来避免这种冗长:
this.store.simpleQuery('users', { name: 'John' });
该函数会将其参数直接传递给 query()
,只是将查询包装在 { filter: { simple: ... } }
.
这可能吗?我该怎么做?
是什么阻止您在适配器中创建自己的方法来做到这一点?
// ... your adapter code
simpleQuery: function(modelName, query) {
return this.store.query('users', {
filter: {
simple: {
name: 'John'
}
}
});
}
// ...
您需要扩展默认商店。将以下内容添加到 app/services/store.js
import DS from 'ember-data';
export default DS.Store.extend({
simpleQuery(modelName, query) {
return this.query(modelName, {
filter: { simple: query }
});
},
simpleQueryRecord(modelName, query) {
return this.queryRecord(modelName, {
filter: { simple: query }
});
}
});
你将能够做到这一点:
this.store.simpleQuery('users', { name: 'John' });
this.store.simpleQueryRecord('users', { email: 'john@example.com' });