( JSBIN ) ( JSBIN 出力) したがって、次のモデルがあり、データをロードします。
App.List = DS.Model.extend({
name: DS.attr('string')
});
App.User = DS.Model.extend({
username: DS.attr('string'),
users: DS.belongsTo('App.List') // is this line correct?
});
App.List.reopen({
users: DS.hasMany('App.User')
});
独自のカスタム アダプター構成があります。
DS.SocketAdapter.configure('App.User',
{sideloadAs: 'users'}
);
次のペイロードでモデルをブーストラップします。
{
"list" : {"id" : 1, "name" : "Nome", "users" : [1,2] },
"users": [
{ "id":1, "username": "user1", "users": 1 },
{ "id":2, "username": "user2", "users": 1 }
]
}
コンソールから次のように入力します。
obj = ' { "list" : {"id" : 1, "name" : "Nome", "users" : [1,2] }, "users": [{ "id":1, "username": "user1", "users": 1 },{ "id":2, "username":"user2", "users" : 1}] } ';
obj = JSON.parse(obj);
DS.get('defaultStore').load( App.List, obj);
var l_len = App.List.find().get('length');
var u_len = App.User.find().get('length');
console.log( ">>>>>>> "+ l_len + "record(s) " +u_len + "record(s)");
しかし、データが読み込まれていないようです。このモデルをコンソールからテストしています。ember-data リビジョン 12 を使用しています。コードのどこが間違っていますか?
ps SocketAdapter は RESTAdapter を拡張します。カスタム アダプタ内でデータをブーストラップする必要がありますか? はいの場合、コードをどこに置くかわかりません(内部の場合findMany
、findAll
再定義)。手伝ってくれてありがとう!