1

( 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 を拡張します。カスタム アダプタ内でデータをブーストラップする必要がありますか? はいの場合、コードをどこに置くかわかりません(内部の場合findManyfindAll再定義)。手伝ってくれてありがとう!

( JSBIN ) ( JSBIN 出力)

4

1 に答える 1

0

このヒントを読んで、json の読み込みを実行できませんでした。それは間違っていると思います。

そこで、回避策を使用してこの方法で解決しました:JSBIN 出力

var obj = { 
    "lists" : [
                 { "id": 1, "name" : "ListOne", "user_ids" : [1,2] },
                 { "id": 2, "name" : "ListTwo", "user_ids" : [3,4] }
              ],
    "users": [
                     { "id": 1, "username": "user1", "list": 1 },
                     { "id": 2, "username": "user2", "list": 1 },
                     { "id": 3, "username": "user3", "list": 2 },
                     { "id": 4, "username": "user4", "list": 2 }
             ]

};

var store = DS.get("defaultStore");
store.load(App.List, obj);

var adapter = store.adapterForType(App.List);
adapter.didFindMany(store, App.List, obj);

単一のレコードをロードする場合は、didFindRecord代わりにdidFindMany. 次の改訂で状況が変わることを願っています。

于 2013-05-11T16:28:31.640 に答える