我有以下設置。 每個帳戶可以有多個配置文件。Ember - 如何從父路由鏈接到子路由時,都有陣列控制器?
app.js:
App.Router.map(function() {
this.resource("accounts", function() {
this.resource("profiles", {path: "/:account_id"})
})
});
App.Account = Ember.Object.extend({
findAll: function() {
// Ajax request to fetch data from the server
}
});
App.AccountsRoute = Ember.Route.extend({
model: function() {
return App.Account.findAll();
}
});
App.Profile = Ember.Object.extend({
findAll: function() {
// Ajax request to fetch data from the server
}
});
App.ProfilesRoute = Ember.Route.extend({
model: function() {
return App.Profile.findAll();
}
});
accounts.hbs:
{{#each model}}
{{#linkTo "profiles" tagName="li"}}
{{accountName}}
{{/linkTo}}
{{/each}}
{{outlet}}
profiles.hbs:
{{#each model}}
{{profileName}}
{{/each}}
但是,這是行不通的。每當我點擊其中一個帳戶名稱時,什麼都沒有出現在插座中。如果我在{{#linkTo「profiles」this tagName =「li」}}中傳遞「this」,那麼我收到一條錯誤消息,指出Ember無法循環通過非Array的東西。當他們都有數組控制器並且子模板顯示在父級插座中時,如何從父級路由鏈接到子級路由?
你還想要一個特定配置文件的路線嗎? – chopper
是的。所以首先用戶點擊賬戶列表中的一個項目,然後顯示該賬戶的配置文件列表。然後,用戶將選擇一個配置文件,該配置文件可能會出現在另一個插座。 – cwarny
我假設你的'App.Account'具有'個人檔案:DS.hasMany('App.Profile')'? – chopper