下面的示例代码是默认情况下模型钩子应该如何工作的。奇怪的是,如果我根本不包含模型钩子,则会正确填充模型。如果我包含如下的模型钩子,它不起作用,因为“params”是一个空对象。但是,this.paramsFor('somemodel')返回{somemodel_id:“1”}那么,我在这里缺少什么?
import Ember from 'ember';
export default Ember.Route.extend({
model: function(params) {
return this.store.find('somemodel', params.somemodel_id);
}
});
答案 0 :(得分:3)
如果未指定模型挂钩,嵌套路由将继承父路径的模型。如果您正在查找要编辑的模型,则不需要模型挂钩,如果您要查询商店中的其他内容并需要访问this._super(...arguments)
,则可以通过export default Ember.Route.extend({
model: function(params) {
return this.store.find('somemodel', this._super(...arguments).get('id'));
}
});
访问它。
-canOpenURL: failed for URL: "org-appextension-feature-password-management://" - error: "(null)"
答案 1 :(得分:0)
似乎params不会传播到嵌套路由。我的路由器看起来像这样:
this.route('somemodel', { path: '/somemodels/:somemodel_id' }, function() {
this.route('edit');
});
隐含“索引”路线,是接收参数的路线。编辑路径是嵌套的,不接收参数。