6

EmberJSは、以前のリビジョンでhasOneを削除しました。hasOneが必要な場所にこのようなネストされたオブジェクト関係を作成する方法は何ですか

hasOneの削除はbelongsToを優先して行われました。ネストされたJSON間の{embedded:always}関係の記述方法について誰でも考えを共有できますか。

4

2 に答える 2

16

この質問は古いものであり、回答済みであることは知っていますが、「ember hasone」の上位の検索結果の 1 つであるため、この件に関する私の調査結果を共有したいと思います。最初の回答のリンクを読みましたが、例は少し古くなっています。

「embedded」フラグは廃止され、「DS.RESTAdapter.map」は関数ではなく、「DS.hasOne」メソッドは非推奨になりました。

「hasOne 関係」をエミュレートするための現在の 1.0.0-beta.2 ソリューションは、単純に「DS.belongsTo」を使用しています。それらはそれほど違いはなく、belongsTo の場合と同様に、hasOneforeignKeys を結果セットに追加するだけで済みます。

ソース: https://github.com/emberjs/data/commit/a466741a36731c5d382df33461268024627325ef

複雑なモデルからのサーバー応答の例を次に示します。

{"users": [{
  "id": 1,
  "name": "John Doe",
  "profile": 27,        // merged hasone
  "image": 3,           // merged hasone
  "account_id": 64      // an actual belongsTo
}]}

その後モデルとして

App.User = DS.Model.extend({
   name: DS.attr('string'),
   profile: DS.belongsTo('profile'),
   image: DS.belongsTo('image'),
   account_id: DS.belongsTo('account')
});

これが、hasOne をモデル化する方法に関する情報を探している人に役立つことを願っています

于 2013-09-15T05:44:20.163 に答える
1

アダプタでマッピングを設定する必要があります。実際の例については、この回答を参照してください。

于 2013-02-04T12:00:57.770 に答える