API をセットアップし、Ember.js DS.RESTAdapter を使用して、テーブル内のすべてのレコードを取得して反復処理しようとしています。現時点では部分的に機能していますが、すべてのレコードを取得するのではなく、1 つだけ取得しています (具体的には最後のレコード)。したがって、以下のコードでは、返されるモデルの長さは 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');
}
});
最後に、テンプレート ファイル:
アプリケーション.ハンドルバー
<b>Ember is working!</b>
{{outlet}}
index.handlebars
Length: {{model.length}}
<ul>
{{#each model}}
<li>{{first_name}} {{last_name}}</li>
{{/each}}
</ul>