У меня есть приложение ember с двумя моделями, пользователем и субъектом, оба из которых полагаются на api для данных. JSON вернулся не в том формате, который ожидает уголек, поэтому у меня есть пользовательский сериализатор для каждого модельноОшибка Ember.js при загрузке маршрута
var foo = {
'App.Subject': {'single':'subject','array':'subjects'}
};
App.SubjectSerializer = DS.RESTSerializer.extend({
extractSingle: function(store, type, payload, id, requestType) {
var p = {};
p[foo[type]['single']] = payload;
return this._super(store, type, p, id, requestType);
},
extractArray: function(store, type, payload, id, requestType) {
var p = {};
p[foo[type]['array']] = payload;
return this._super(store, type, p, id, requestType);
},
serializeIntoHash: function(hash, type, record, options) {
Ember.merge(hash, this.serialize(record, options));
}
});
Это прекрасно работает. Тем не менее, у меня есть подобный сериалайзер для моих пользователей модельно
var foo = {
'App.User': {'single':'user','array':'users'}
};
App.UserSerializer = DS.RESTSerializer.extend({
extractSingle: function(store, type, payload, id, requestType) {
var p = {};
p[foo[type]['single']] = payload;
return this._super(store, type, p, id, requestType);
},
extractArray: function(store, type, payload, id, requestType) {
var p = {};
p[foo[type]['array']] = payload;
return this._super(store, type, p, id, requestType);
},
serializeIntoHash: function(hash, type, record, options) {
Ember.merge(hash, this.serialize(record, options));
}
});
Когда я пытаюсь получить доступ к своим пользователям в браузере, я получаю эту ошибку:
Assertion failed: Error while loading route: TypeError: Cannot read property 'array' of undefined
Может кто-нибудь помочь?
EDIT: «тип» в функции extractArray относится к корневому свойству JSON, например, если мой JSON был
{
"user": {
name: "xyz",
email: "[email protected]"
}
}
«типа» будет «пользователь».
и что 'тип' в функции extractArray, когда код выполняется, помещает отладчик или журнал и видит, какое значение оно имеет. – fanta