0

我已经设置了一个 API,并尝试使用 Ember.js DS.RESTAdapter 来获取和遍历表中的所有记录。目前它正在部分工作,但我没有得到所有记录,而是只得到一个(最后一条记录是具体的)。因此,使用下面的代码,返回的模型长​​度为 1,列出的所有内容都是 Gale Sayers。JSON有什么问题吗?这是 API 返回的 JSON:

{
    "users":[
        {
            "id":{"$oid":"52f94fc6477261d1a9110000"},
            "first_name":"Jim",
            "last_name":"Browne",
            "email":"user186248@example.com"
        },
        {
            "id":{"$oid":"52f4088c477261b72a000000"},
            "first_name":"Gale",
            "last_name":"Sayers",
            "email":"user186248@example.com"
        }
    ]
}

作为参考,这是我的 Ember.js 代码的相关部分:

window.App = Ember.Application.create({
    rootElement: '#ember-app',
    Resolver: Ember.DefaultResolver.extend({
      resolveTemplate: function(parsedName) {
        parsedName.fullNameWithoutType = "app/" + parsedName.fullNameWithoutType;
        return this._super(parsedName);
      }
    })
});

App.ApplicationAdapter = DS.RESTAdapter.extend({
    namespace: 'api'
});

App.Store = DS.Store.extend({
    adapter: App.ApplicationAdapter
});

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

App.Router.map(function() {
});

App.ApplicationRoute = Ember.Route.extend({
});

App.IndexRoute = Ember.Route.extend({
    model: function() {
      return this.store.find('user');
    }
});

最后是模板文件:

应用程序.handlebars

<b>Ember is working!</b>
{{outlet}}

index.handlebars

Length: {{model.length}}
<ul>
{{#each model}}
    <li>{{first_name}} {{last_name}}</li>
{{/each}}
</ul>
4

1 回答 1

0

马丁对这个问题的评论是正确的。来自 Mongoid 的对象 ID 是问题所在。我发现另一个具有相同问题的 stackoverflow 帖子和一个很好的解决方案:Ember 模型仅加载最后一条记录

于 2014-02-20T02:19:30.207 回答