I am moving from Ember data from 0.13 to 1.0.0 beta. According to the document https://github.com/emberjs/data/blob/master/TRANSITION.md , now there are adapters of each type and type serializers.
This means that I can no longer define "myRestAdapter" with some specific overrides for the primary key and authentication. I need to implement this code for each type of model, which leads to duplication xx times in the same code.
Code in Ember 0.13 data:
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 data 1.0.0 (only for setting the primary key to _id instead of _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); } });
I correctly understood that I need to copy the same block now for each model that requires _id as a primary key? Is there no way to specify this once for the entire application?
source share