0

RESTful API から次の (簡略化された) 出力を取得しています。

{products: [{
    product: { 
        id: 1, name: "T-Shirt red"
    },
    images: [{
        id: 1, size: 'm', url: 'http://db.co/t-shirt-red_m.jpg'
    }, {
        id: 2, size: 'xl', url: 'http://db.co/t-shirt-red_xl.jpg'
    }]
}, {
    product: {
        id: 2, name: "T-Shirt blue"
    },
    images: [{
        id: 3, size: 'm', url: 'http://db.co/t-shirt-blue_m.jpg'
    }, {
        id: 4, size: 'xl', url: 'http://db.co/t-shirt-blue_xl.jpg'
    }]
}]}

Ember バージョン 12 を使用すると、Product モデルの宣言はどのように表示され、結果をどのようにトラバースできますか? その方向の例を見つけることができませんでした。

次のデータへのアクセスは機能しません (正しい構文が見つからないだけです):

var products = App.Product.find();                  // seems to work
var prodNames = products.getEach('product.name');   // doesn't work
var secondProd = products.getObject(1).get('name'); // doesn't work

よろしくお願いします!クラウディオ。

4

1 に答える 1

1

DS.hasMany および REST アダプターのいくつかのオプションが役立つ場合があります。

MongoDB 組み込みモデルで同様のセットアップを使用しました。以下にいくつかの例を添付しました。

埋め込み配列に保存しようとしたくなかったので、embedded:load を使用しましたが、embedded: 'always' を使用してオブジェクト全体をサーバーに永続化することができます (ただし、完全には機能しませんでした)。親オブジェクトを保存すると、「常に」と予想されます。

DS.RESTAdapter.map 'App.Check',
  line_items: { embedded: 'load' }
  parties: { embedded: 'load' }

App.Check = DS.Model.extend
  description: DS.attr("string")
  modified_date: DS.attr("date")
  parties: DS.hasMany('App.Party')

App.Party = DS.Model.extend
  name: DS.attr("string")
  check: DS.belongsTo('App.Party')

その後、アイテムを参照できます。ビューでは、内容が DS.Check のインスタンスに設定されている ArrayController から以下のようにアクセスしました。

{{#each party in content.parties }}
于 2013-03-13T00:31:18.377 に答える