Ich bin von Ember Daten 0.13 zu 1.0.0 Beta migrieren. Nach dem Dokument https://github.com/emberjs/data/blob/master/TRANSITION.md gibt es jetzt pro Typ Adapter und pro Typ Serialisierer.Ember Daten 1.0.0: verwirrt mit per-Typ Adapter und Serialisierer
Das bedeutet, dass ich einen "myRestAdapter" mit einigen spezifischen Überschreibungen für den Primärschlüssel und die Authentifizierung nicht mehr definieren kann. Ich muss diesen Code nun für jeden Modelltyp implementieren, was dazu führt, dass xx mal der gleiche Code dupliziert wird.
-Code in Ember Daten 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);
}
});
-Code in Ember Daten 1.0.0 (nur den Primärschlüssel für die Einstellung statt _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);
}
});
Habe ich verstanden es richtig, dass Ich muss diesen gleichen Block jetzt für jedes Modell kopieren, das _id als Primärschlüssel benötigt? Gibt es keine Möglichkeit mehr, dies einmal für die gesamte Anwendung anzugeben?
Guter Vorschlag. Wird folgen! Danke. Marc – cyclomarc
Haben Modelle, die keine Pertype-Adapter/Serializer haben, immer noch auf einen Standardadapter/Serializer zurückzugreifen? – mehulkar
@MehulKar Ich habe keine Möglichkeit gefunden, auf einen Standardadapter zurückzugreifen. – cyclomarc