1

我已经看过指南和网上的一些问题。这必须很简单,但我只是错过了一些东西。最糟糕的是,其他东西效果很好,但不应该是真正微不足道的东西(恕我直言)。

我有一个基本的 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>

我不知道版本是否发生了变化。我见过不同的语法 do/claim 来做同样的事情。我正在使用 v1.0.0。

4

2 回答 2

0

你试过这样做吗?

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

我加了一行,就是调用super。

于 2013-11-01T01:37:24.080 回答
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 模型使用路由上的模型挂钩返回的模型。因此,如果您在模型挂钩中返回“公司”。您将有权访问该公司对象。

于 2013-11-01T03:55:32.480 回答