Ember データ 0.13 から 1.0.0 ベータに移行しています。ドキュメントhttps://github.com/emberjs/data/blob/master/TRANSITION.mdによると、タイプごとのアダプターとタイプごとのシリアライザーが存在するようになりました。
これは、主キーと認証の特定のオーバーライドを使用して「myRestAdapter」を定義できなくなったことを意味します。モデル タイプごとにこのコードを実装する必要があるため、同じコードが xx 回複製されます。
Ember データ 0.13 のコード:
App.AuthenticatedRestAdapter = DS.RESTAdapter.extend({
serializer: DS.RESTSerializer.extend({
primaryKey: function() {
return '_id';
}
}),
ajax: function (url, type, hash) {
hash = hash || {};
hash.headers = hash.headers || {};
hash.headers['Authorization'] = App.Store.authToken;
return this._super(url, type, hash);
}
});
Ember data 1.0.0 のコード (主キーを _id ではなく _id に設定する場合のみ:
App.AuthorSerializer = DS.RESTSerializer.extend({
normalize: function (type, property, hash) {
// property will be "post" for the post and "comments" for the
// comments (the name in the payload)
// normalize the `_id`
var json = { id: hash._id };
delete hash._id;
// normalize the underscored properties
for (var prop in hash) {
json[prop.camelize()] = hash[prop];
}
// delegate to any type-specific normalizations
return this._super(type, property, json);
}
});
_id を主キーとして必要とするすべてのモデルに対して、この同じブロックをコピーする必要があることを正しく理解しましたか? アプリケーション全体に対してこれを 1 回指定する方法はもうありませんか?