のプロパティを読み取ることができない「タイプは」チケットの統計と呼ばれる: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
});
}
});
なぜこれが起こっているのと
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
任意のアイデア:
そして、私はTypeError例外を取得しますか?このエラーは、アダプタのpathForType関数を削除すると消えますが、次にhttp://domain.com/data/ticket-statsからデータを取得する際の別のエラーが表示されます... ...は正しいURLではありません。私はcamelCase、ticket-stats => ticketStatsに変換する必要があります。
これは以下のように私のJSONが見えるものです:私は、単にJSONSerializerでJSONAPISerializerを置き換えることにより、アプリケーション・シリアライザを修正
{
"get_avg_tickets": { ... },
"get_tickets_more": { ... },
"get_tickets": { ... }
}
:アプリ/シリアライザ/ 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'。 –