Javascript 为什么';我的模型挂钩没有收到参数吗?
免责声明:主要新手警告 在本教程之后,我已经成功地设置了Rails后端/Ember前端项目 我的路由器是Javascript 为什么';我的模型挂钩没有收到参数吗?,javascript,ruby-on-rails,ember.js,Javascript,Ruby On Rails,Ember.js,免责声明:主要新手警告 在本教程之后,我已经成功地设置了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', fu
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;
现在我想根据联系人的姓氏设置只查找某些联系人的可能性,因此我遵循了
我修改了我的app/routes/contacts/index.js
route,现在看起来像这样:
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
对象如下所示:
import Ember from 'ember';
export default Ember.Route.extend({
queryParams: {
lastName: {
refreshModel: true
}
},
model: function(params) {
return this.store.findQuery('contact', params);
}
});
里面似乎没有我感兴趣的东西
然而,查询参数信息以某种方式传播到视图,所以我感到有点困惑。在我的路线中,如何为模型挂钩填充params
?似乎是这样。一个简单的解决方法是通过可选的转换参数访问查询参数:
import Ember from 'ember';
export default Ember.Route.extend({
queryParams: {
lastName: {
refreshModel: true
}
},
model: function(params, transition) {
return this.store.findQuery('contact', transition.queryParams);
}
});