1
,模型實例沒有通過鏈接發送到動態路由如果動態路由是模型哈希,我似乎無法將模型實例傳遞給動態路由。如果使用RSVP.hash()
我有一個公司的路線:
// 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}}
如果我直接去動態路線,一切正常。
然而,在companies.hbs
的link-to
我傳遞公司模式向companies.edit
路線,但數據永遠不會給companies.edit
(company
是undefined
)我假設,因爲companies.edit
期待模型哈希值。
當鏈接被點擊後,特定的路由過渡將開始,路由模型鉤子將被調用以獲得'模型數據',在你的情況下你提供'模型'本身'鏈接到',所以燼將假設所需模型已經解決,因此不需要再次調用模型鉤子。在這裏,你去爲燼指南解釋https://guides.emberjs.com/v2.12.0/routing/specifying-a-routes-model/#toc_dynamic-models – kumkanillam
@kumkanillam,那麼爲什麼'{{#鏈接到「 companies.show「company}}'work but not'{{#link-to」companies.edit「company}}'? '.show'路由獲取緩存模型,但'.edit'不是? –
1.沒有動態段的路線將始終執行模型掛鉤。 2.具有動態段的路由只有在通過URL輸入時纔會執行模型掛鉤。 3.具有動態段的路由,如果您使用鏈接到幫助器進行轉換,那麼您只需提供標識符,然後模型掛接即可執行。 4.具有動態段的路由,如果您使用鏈接到幫助程序進行轉換,並且如果您提供模型/或任何對象,則不會執行模型掛接。 – kumkanillam