我在图像上有主 - 细节页面布局。我通过#/masters/:master_id
app url。
路由定义如下:
App.Router.map(function() {
this.resource('masters', { path: '/masters' }, function() {
this.route('detail', { path: '/:master_id' });
});
});
App.MastersRoute = Ember.Route.extend({
model: function() {
return App.DataStore.getData('/api/masters'); //returns Promise!
},
setupController: function(controller, model) {
controller.set("content", model);
}
});
App.MastersDetailRoute = Ember.Route.extend({
model: function(params) {
return this.modelFor("masters").find(function(item) {
return item.get("id") == params.master_id;
});
}
});
模板:
<script type="text/x-handlebars-template" data-template-name="masters">
<div id="masters-grid">
{{#each master in model}}
<div {{action "show" master}}>
{{master.name}}
</div>
{{/each}}
</div>
<div id="detail">
{{outlet}}
</div>
</script>
<script type="text/x-handlebars-template" data-template-name="masters/detail">
{{model.name}} <br />
{{model.age}} <br />
{{model.address}} <br />
</script>
点击网格中的母版时,我想在详细信息插座中显示其详细信息,我不想在更改母版选择时从API重新加载所有母版。
我的MastersDetailRoute
模型存在问题,因为this.modelFor("masters")
会返回undefined
。我认为,这是由model
钩子中的Promise返回引起的。任何想法或解决方法如何从“子路径”model
钩子中的Masters模型或控制器访问一个项目?
答案 0 :(得分:2)
我在这看到一些事情。
{{#link-to 'masterDetail' master}}
{{master.name}}
{{/link-to}}
希望这有帮助