免责声明:主要新手警告!
我已经在this教程之后成功设置了Rails后端/ Ember前端项目。
我的路由器
import Ember from 'ember';
import config from './config/environment';
var Router = Ember.Router.extend({
location: config.locationType
});
Router.map(function() {
this.resource('contacts', function() {
this.resource('contact', { path: '/:contact_id' });
});
});
export default Router;
现在,我想根据联系人的姓氏设置仅查找某些联系人的可能性,因此我按照了official docs for specifying query params。
我修改了我的app/routes/contacts/index.js
路线,现在看起来像这样:
import Ember from 'ember';
export default Ember.Route.extend({
queryParams: {
lastName: {
refreshModel: true
}
},
model: function(params) {
return this.store.findQuery('contact', params);
}
});
和app/controllers/contacts.js
import Ember from 'ember';
export default Ember.ArrayController.extend({
queryParams: ['lastName'],
lastName: null,
});
不幸的是,即使我在浏览器中指定了查询参数,params
也不会被填充。更确切地说,params
对象如下所示:
似乎没有任何有趣的内容。
然而,查询参数信息以某种方式传播到视图,所以我感到有点困惑。如何在我的路线中为模型钩子填充params
?
答案 0 :(得分:1)
好像this might be a bug。一个简单的解决方法是通过可选的转换参数访问查询参数:
import Ember from 'ember';
export default Ember.Route.extend({
queryParams: {
lastName: {
refreshModel: true
}
},
model: function(params, transition) {
return this.store.findQuery('contact', transition.queryParams);
}
});