恩伯:挂钩的路线

时间:2014-10-19 23:56:12

标签: javascript ember.js

我试图弄清楚如何将一个简单的模型连接到嵌套在资源中的路径。我很困惑,因为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}}

1 个答案:

答案 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以查看其工作原理。