我试图弄清楚如何将一个简单的模型连接到嵌套在资源中的路径。我很困惑,因为ember检查员说它正在寻找DesktopMessageRoute和DesktopMessageController ......但是消息模板只响应MessageController(controllers / message_controller.js)而且我已经尝试了每个文件名和位置的组合都附加了桌面消息而不是。我错过了什么?
router.js
EmberApp.Router.map(function () {
this.resource('desktop', function(){
this.route('message');
});
});
desktop_route.js
var room = {
roomName: "room",
users: ["me","you"]
}
EmberApp.DesktopRoute = Ember.Route.extend({
model: function(params) {
return room;
},
renderTemplate: function(){
this.render();
this.render('message', {
into: 'desktop',
outlet: 'message'
})
}
});
路由/ message_route.js
var messages = [{text: "hey"},{text: "yo"}]
EmberApp.MessageRoute = Ember.Route.extend({
model: function(){
return messages;
}
});
模板/ desktop.hbs
{{outlet message }}
模板/ message.hbs
{{#each}}
{{ text }}
{{/each}}
答案 0 :(得分:0)
你应该有DesktopMessageRoute
之类的:
EmberApp.DesktopMessageRoute = Ember.Route.extend({
model: function(){
return messages;
}
});
您可以从renderTemplate
移除DesktopRoute
方法,然后将{{outlet}}
留在desktop.hbs
。
这应该是您的desktop/messge.hbs
:
{{#each message in model}}
<li>{{ message.text }}</li>
{{/each}}
请参阅此JSBin以查看其工作原理。