Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js Emberjs:无法读取属性';类型';未定义的_Ember.js_Ember Data - Fatal编程技术网

Ember.js Emberjs:无法读取属性';类型';未定义的

Ember.js Emberjs:无法读取属性';类型';未定义的,ember.js,ember-data,Ember.js,Ember Data,我在我的余烬应用程序中创建了一个名为“票证统计”的模型: 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() }); import JSONAPIAdapter from

我在我的余烬应用程序中创建了一个名为“票证统计”的模型:

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()

});
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);
    }
});
数据是从JSON api中提取的:。。。 因此,我为这个模型添加了一个名为ticketstats的特殊适配器:

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()

});
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
你知道为什么会这样吗?当我删除适配器中的pathForType函数时,这个错误消失了,但随后我得到另一个关于从?获取数据的错误?。。。这不是正确的URL。我必须转换成camelCase,ticketStats=>ticketStats

这就是我的json的样子:

{
   "get_avg_tickets": { ... },
   "get_tickets_more": { ... },
   "get_tickets": { ... }
}
我还修改了应用程序序列化程序,简单地用JSONSerializer替换了JSONAPISerializer:app/serializers/application.js

import JSONSerializer from 'ember-data/serializers/json';

export default JSONSerializer.extend({
});

任何帮助都将不胜感激!我对Ember非常陌生。

您需要使用最适合json数据的序列化程序

http://emberjs.com/api/data/classes/DS.JSONAPISerializer.html
出现此错误是因为从api接收的json数据不完全符合json格式的应用程序要求

请在这里共享json数据。因为domain.com json url不工作。
您的代码中有很多问题。让我逐一指导您

您需要使用此序列化程序这里是参考链接

您的json应采用以下格式:

{
   "get_avg_tickets": 45,
   "get_tickets_more": propertyvalue,
   "get_tickets": propertyvalue
}
否则,您需要在serilializer的normalizeEqualyResponse中规范化您的响应

还准备好了下面的文档以供您的帮助
我希望它能帮助你。别忘了接受我的回答。

这就是我的json的样子:{“get_avg_tickets”:{..},“get_tickets_more”:{…},“get_tickets”:{…}使用DS.EmbeddedRecordsMixin时必须实现序列化程序。我确实为应用程序创建了一个序列化程序,以便它使用JSONSerializer而不是JSONAPISerializer。请共享此序列化程序的代码,并共享json数据。因为您提供的json url链接不起作用,我编辑了这篇文章,以显示我的json以及我的序列化程序的外观。JSON api的链接不适用于您,它位于intranet网络上。