对于CompaniesRoute,我为每个项目呈现链接:
{{#link-to 'company' id}}The name should change here:{{name}}{{/link-to}}
我有一个(CompanyRoute)路线,用于渲染模板以编辑对象。 "发现"调用模型钩子上的方法(AJAX请求)。
但是,如果我在CompanyController(ObjectController)中编辑对象,它不会反映回CompaniesRoute(CompaniesController)中的项目。
我对路线的理解是模型钩子只有在它不知道模型时才被调用。
所以当我这样做时:
{{#link-to 'company' this}}The name should change here:{{name}}{{/link-to}}
现在它正常工作,现在当我进入编辑模式时,名称(以及任何其他相关属性)会发生变化。
然而,现在的问题是"发现"没有调用CompanyRoute的模型钩子上的方法(AJAX请求)。它假定模型已经存在,因此它只使用现有模型,在调用" all"时使用有限属性。 CompaniesRoute模型钩子上的方法。
我的问题是如何解决这个问题,以便在我使用后者时调用它(查找方法){{#link-to' company' this}})链接到方法?
注意:我也在Router.map上使用嵌套资源。即:
this.resource('companies', function() {
this.resource('company', {path:':company_id'});
}
注2:我没有使用Ember数据
答案 0 :(得分:0)
玩完之后发现我必须在CompanyRoute上添加setupController:
setupController: function(controller, model) {
controller.set('model', App.CompanyAdapter.find(model.id));
this._super(controller, model);
}
现在每次都会触发请求,并根据具有此属性的链接帮助程序相应地反映更改。