7

ember-data モデルの元の定義に URL を含めようとすると、REST アダプターで爆発することがわかりましたが、単純に「reopenClass」すれば問題ありません。

この背後にある技術的な理由は何ですか? (以下は実際の例です)

CodeCamp.Speaker = DS.Model.extend({
    id: DS.attr('number'),
    name: DS.attr('string'),
    session: DS.belongsTo('CodeCamp.Session')
});

CodeCamp.Speaker.reopenClass({
    url: 'sessions/%@/speakers'
});
4

2 に答える 2

15

オブジェクトを呼び出すextendと、インスタンス属性が設定されますが、reopenClassクラス属性が設定されます。

url属性はクラスレベルの属性です 。

Ember.get(CodeCamp.Speaker, 'url')

とは対照的に:

speaker = CodeCamp.Speaker.createObject()
Ember.get(speaker, 'name')
于 2012-10-01T23:35:36.107 に答える
0

単純に を使用してインスタンスを拡張できることにも注意してくださいreopen。Emberjs のドキュメントには、http: //emberjs.com/guides/object-model/reopening-classes-and-instances/ にある例が含まれています。

于 2013-01-18T08:01:29.980 に答える