如果动态路由是模型哈希,我似乎无法将模型实例传递给动态路由。
我有一条公司路线:
// routes/companies,js
export default Ember.Route.extend({
model() {
return this.get('store').findAll('company');
}
});
公司/编辑路线:
// routes/companies/edit.js
export default Ember.Route.extend({
model(params) {
var store = this.store;
return Ember.RSVP.hash({
companies: store.findRecord('company', params.company_id),
companyTypes: store.findAll('companyType')
});
}
});
我的公司模板是:
<!-- templates/companies.hbs -->
<div style="width:400px; height: 300px; overflow:true;float:left;">
<h2>Companies</h2>
{{#each model as |company|}}
<p>
{{#link-to "companies.show" company}}{{company.companyName}}{{/link-to}}
{{#link-to 'companies.edit' company}}Edit{{/link-to}}
</p>
{{/each}}
{{#link-to 'companies.new'}}New{{/link-to}}
</div>
{{outlet}}
如果我直接进入动态路线,一切正常。
但是,link-to
位于companies.hbs
我将公司模型传递到companies.edit
路线,但数据永远不会传到companies.edit
({{1} } {是company
)我假设因为undefined
期待模型哈希。
答案 0 :(得分:1)
使用Stack Overflow进行橡胶闪避再次起作用。
更改companies.edit
以传递ID,而不是模型:
link-to
当您传递id时,如果只是传递模型,则会导致模型钩子重新触发并忽略模型钩子。我不完全确定为什么似乎有必要提供id并强制模型钩子在这种情况下重新填充哈希。
也许Ember无法推断哈希中使用的模型或其他一些副作用?