Я создал модель в моем Ember приложение называется билет статистика:Emberjs: не может прочитать свойство «тип» неопределенной
import Model from 'ember-data/model';
import attr from 'ember-data/attr';
export default Model.extend({
get_tickets_more: attr(),
get_tickets: attr(),
get_avg_tickets: attr()
});
Данные вытягивается из JSON API: http://domain.com/data/ticketStats?blah=blah ... Так я есть добавлен специальный адаптер для этой модели называется билет статистика:
import JSONAPIAdapter from 'ember-data/adapters/json-api';
export default JSONAPIAdapter.extend({
host: 'http://domain.com',
namespace: 'data',
pathForType: function(type) {
return Ember.String.camelize(type);
}
});
я получаю данные для этой модели в маршруте:
import Ember from 'ember';
export default Ember.Route.extend({
model() {
var ticketData;
this.store.query('ticket-stats', { teamID: 218, attUID: 'oc7569', useProd: 1})
.then(function(stats) { ticketData = stats; });
return Ember.RSVP.hash({
currentUser: this.currentUser,
ticketStats: ticketData
});
}
});
И я получаю TypeError:
ember.debug.js:32096 TypeError: Cannot read property 'type' of undefined
at _pushInternalModel (store.js:1524)
at push (store.js:1501)
at finders.js:171
at Object.Backburner.run (ember.debug.js:678)
at _adapterRun (store.js:1733)
at finders.js:168
at tryCatch (ember.debug.js:53806)
at invokeCallback (ember.debug.js:53821)
at publish (ember.debug.js:53789)
at ember.debug.js:32054onerrorDefault @ ember.debug.js:32096exports.default.trigger @ ember.debug.js:54476(anonymous function) @ ember.debug.js:55727Queue.invoke @ ember.debug.js:333Queue.flush @ ember.debug.js:397DeferredActionQueues.flush @ ember.debug.js:205Backburner.end @ ember.debug.js:560(anonymous function) @ ember.debug.js:1126
Любые идеи, почему это происходит? Эта ошибка исчезает, когда я удаляю функцию pathForType в адаптере, но потом я получаю еще одну ошибку о получении данных от http://domain.com/data/ticket-stats? ... что не является правильным URL. Мне нужно преобразовать в camelCase, ticket-stats => ticketStats.
Это то, что моя JSON выглядит следующим образом:
{
"get_avg_tickets": { ... },
"get_tickets_more": { ... },
"get_tickets": { ... }
}
Я также изменил сериалайзер приложения, просто заменив JSONAPISerializer с JSONSerializer: приложение/сериализаторов/application.js
import JSONSerializer from 'ember-data/serializers/json';
export default JSONSerializer.extend({
});
Любая помощь будет оценили! Я очень новичок в Ember.
Это то, что выглядит мой json: {"get_avg_tickets": {..}, "get_tickets_more": {...}, "get_tickets": {...}} – roca323
Вы должны реализовать сериализатор при использовании ' DS.EmbeddedRecordsMixin'. –