Я переношу данные Ember с 0.13 до 1.0.0 beta. Согласно документу https://github.com/emberjs/data/blob/master/TRANSITION.md, теперь существуют адаптеры каждого типа и сериализаторы каждого типа.Ember data 1.0.0: путают с адаптерами и сериализаторами каждого типа
Это означает, что я больше не могу определить «myRestAdapter» с некоторыми определенными переопределениями для первичного ключа и аутентификации. Мне нужно реализовать этот код для каждого типа модели, что приводит к дублированию xx раз в том же коде.
Код в данном Посте 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);
}
});
код в Эмбере 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 как первичный ключ? Нет ли способа указать один раз для всего приложения?
Хорошее предложение. Будет следовать этому! спасибо. Marc – cyclomarc
У моделей, у которых нет адаптеров/сериализаторов pertype, которые все еще относятся к адаптеру/сериализатору по умолчанию? – mehulkar
@MehulKar Я не нашел возможности отступить к адаптеру по умолчанию. – cyclomarc