lesen Ich habe ein Modell in meinem ember App namens Ticket-Statistiken erstellt:Emberjs: nicht Eigenschaft 'Typ' undefinierter
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()
});
Die Daten von JSON api gezogen wird: http://domain.com/data/ticketStats?blah=blah ... Also ich habe einen speziellen Adapter für dieses Modell Ticket-Statistik genannt hinzugefügt:
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);
}
});
ich die Daten für dieses Modell in Route erhalten:
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
});
}
});
Und, erhalte ich eine 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
Irgendwelche Ideen, warum dies geschieht? Dieser Fehler verschwindet, wenn ich die pathForType-Funktion im Adapter entferne, aber dann bekomme ich einen weiteren Fehler beim Abrufen der Daten von http://domain.com/data/ticket-stats? ... was nicht die richtige URL ist. Ich muss zu camelCase konvertieren, ticket-stats => ticketStats. Diese
ist, was meine Json wie folgt aussieht: app/Serializer/application.js
import JSONSerializer from 'ember-data/serializers/json';
export default JSONSerializer.extend({
});
Jede Hilfe wäre:
{
"get_avg_tickets": { ... },
"get_tickets_more": { ... },
"get_tickets": { ... }
}
ich durch einfaches Austauschen JSONAPISerializer mit JSONSerializer auch die Anwendung Serializer modifizierte geschätzt! Ich bin sehr neu in Ember.
So sieht mein JSON aus: {"get_avg_tickets": {..}, "get_tickets_more": {...}, "get_tickets": {...}} – roca323
Sie müssen den Serializer bei der Verwendung 'implementieren DS.EmbeddedRecordsMixin'. –