4

次の JSON があります (簡単な例):

{
  id:        101,
  firstName: "John",
  surname:   "Doe"
}

lastNameしかし、モデルでの代わりに使用したいのですsurname。このようなもの、多分:

App.Person = DS.Model.extend({
  firstName: DS.attr('string'),
  lastName:  DS.attr('string', { key: 'surname' })
});

これを行う方法を示す何かを見たと断言できますが、私の人生では、それを見つけることができませんでした. また、ember-data ソースには明らかなものは何も見つかりませんでした。

key属性オプションで、nameidalias、およびを設定しようとしましmapたが、うまくいかないようです。これを行う方法はありますか?

4

1 に答える 1

7

これは、REST アダプターを介して実行できるはずです。ドキュメントには、 Underscored Attribute Namesの下に「不規則なキー」をマッピングする例が含まれています。

不規則なキーは、アダプターにマップできます。JSON のキーがlastNameOfPersonで、目的の属性名が単にlastNameである場合は、アダプタに次のように通知します。

App.Person = DS.Model.extend({
  lastName: DS.attr('string')
});
DS.RESTAdapter.map('App.Person', {
  lastName: { key: 'lastNameOfPerson' }
});

あなたの場合:

DS.RESTAdapter.map('App.Person', {
    lastName: { key: 'surname' }
});

Ember は JSON が持つことを期待しているfirst_nameのに対し、モデルには があることに注意してfirstNameください。そのため、明示的に調整する必要がある場合もあります。

于 2013-03-05T00:44:22.503 に答える