Ember.js - IndexRoute的模型

时间:2013-11-01 01:33:51

标签: ember.js

我一直在指导和网上的一些问题。这必须很简单,但我只是错过了一些东西。最糟糕的是,其他的东西效果很好但不是真正微不足道的东西(imho)。

我已经设置了基本的Ember应用程序。我定义了一个索引模板作为登录页面。有一些元素,我希望它从一个'模型'直接引用,我在脚本中只有一个javascript对象。

var company = {
  id: '1',
  name: 'Some Inc.',
  email: 'guy@some-inc.com'
};

App.IndexRoute = Ember.Route.extend({
  setupController: function(controller, company) {
    // Set the IndexController's `title`
    controller.set('title', "Publisher Dashboard");
    controller.set('model', company);
  }
});

在我的HTML中,我有索引模板:

<script type="text/x-handlebars" data-template-name="index">
...
  <span class="name">{{name}} ( {{email}} )</span>

我不知道版本是否有变化。我已经看到不同的语法做/声称做同样的事情。我正在使用v1.0.0。

2 个答案:

答案 0 :(得分:0)

你试过这个吗?

setupController: function(controller, company) {
  this._super(controller, model);
  // Set the IndexController's `title`
  controller.set('title', "Publisher Dashboard");
  controller.set('model', company);
}

我添加了一行,即调用super。

答案 1 :(得分:0)

您必须声明要用于IndexRoute的模型

App.IndexRoute = Ember.Route.extend({
  model: function() {
    return 'SOMETHING' //could be 'company'
  },
  setupController: function(controller, company) {
  // Set the IndexController's `title`
  controller.set('title', "Publisher Dashboard");
  controller.set('model', company);
  }
});

SetupController模型使用路径上模型挂钩返回的模型。所以如果你在模型钩子中返回'company'。您将有权访问该公司对象。