Javascript 余烬:连接嵌套路由
我试图找出如何将一个简单的模型连接到资源中嵌套的路由。我很困惑,因为余烬检查员说它正在寻找DesktopMessageRoute和DesktopMessageController。。。但是消息模板只响应MessageController/message_controller.js,我尝试了文件名和位置的每一种组合,都将桌面附加到消息中,而不是。我错过了什么 路由器.jsJavascript 余烬:连接嵌套路由,javascript,ember.js,Javascript,Ember.js,我试图找出如何将一个简单的模型连接到资源中嵌套的路由。我很困惑,因为余烬检查员说它正在寻找DesktopMessageRoute和DesktopMessageController。。。但是消息模板只响应MessageController/message_controller.js,我尝试了文件名和位置的每一种组合,都将桌面附加到消息中,而不是。我错过了什么 路由器.js EmberApp.Router.map(function () { this.resource('desktop', fu
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'
})
}
});
routes/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}}
您应该有一个DesktopMessageRoute,如:
您可以从DesktopRoute中删除renderTemplate方法,只需在desktop.hbs中保留{{outlet}}
这应该是您的桌面/messge.hbs:
查看此项了解其工作原理。我实际上在桌面模板中使用了多个插座,因此我认为这是必要的?我只是为了节省空间而忽略了它们。Ember根据路径呈现正确的模板,如果路径是host.com/messages,它将呈现消息模板,使用消息路由、控制器和模型。除非这是您想要的,否则可以使用renderTemplate以不同的路径渲染模板。
EmberApp.DesktopMessageRoute = Ember.Route.extend({
model: function(){
return messages;
}
});
{{#each message in model}}
<li>{{ message.text }}</li>
{{/each}}