Ember.js 链接路由到单个对象,不带id

Ember.js 链接路由到单个对象,不带id,ember.js,ember-data,Ember.js,Ember Data,我准备好了这个。代码如下: App = Ember.Application.create(); App.Store = DS.Store.extend({ revision: 13, adapter: 'DS.FixtureAdapter' }); App.Router.map(function() { // put your routes here }); App.User = DS.Model.extend({ name : DS.attr('strin

我准备好了这个。代码如下:

App = Ember.Application.create();

App.Store = DS.Store.extend({
    revision: 13,
    adapter: 'DS.FixtureAdapter'
});

App.Router.map(function() {
    // put your routes here
});

App.User = DS.Model.extend({
    name : DS.attr('string'),
    email : DS.attr('string'),
});

App.User.FIXTURES = [{ id: 'me', name: 'Max Smith', email: 'max.smith@email.com' }];

App.IndexRoute = Ember.Route.extend({
    model: function() {
        return App.User.find();
    }
});
这是模板:

  <script type="text/x-handlebars" data-template-name="index">
    {{#each model}}
    <div class="form_labels_wrapper">
      <dl class="dl-horizontal">
        <dt>Id:</dt>               <dd>{{id}}</dd>
        <dt>Name:</dt>             <dd>{{name}}</dd>
        <dt>Email:</dt>            <dd>{{email}}</dd>
      </dl>
    {{/each}}
    </div>
  </script>
使用此夹具:

App.User.FIXTURES = { name: 'Max Smith', email: 'max.smith@email.com' };
请注意,这是一个单独的元素,我没有在模型中循环使用
#each
,因为这不应该是一个列表:只有一个元素


余烬拒绝接受这一点。我该怎么做才能让它工作呢?

您可以从
模型
钩子中返回一个记录数组,因此ember正在为它生成一个
ArrayController
,它希望它的
内容
是一个数组

更改
模型
挂钩以返回单个记录。例如,使用我作为id

App.IndexRoute = Ember.Route.extend({
    model: function() {
        return App.User.find('me');
    }
});

然后你的模板就可以工作了。查看更新的。

谢谢,尽管这不是我想要的。我的请求将转到
api/me
,服务器用登录用户的数据进行回复。我必须提供一个新的api端点
api/users/me
(幸运的是我可以更改服务器端)。这很尴尬,因为我只有
me
用户。但慢慢地,我开始相信,用余烬做这件事是不可能的。似乎余烬真的需要“查找所有”或“查找id为的对象”。这是不可能告诉余烬:“这里你有一个对象,只有一个它的类型,它没有id,但这是罚款”。
App.IndexRoute = Ember.Route.extend({
    model: function() {
        return App.User.find('me');
    }
});