Store.findAll on Model使用Fixture Adapter和Ember Data 2.0

时间:2015-09-03 04:21:07

标签: ember.js ember-data

目前我们正在升级我们的项目以使用Ember 2.0和Ember Data 2.0。

我有基于夹具适配器的型号。但是当我在模型上执行 store.findAll(modelName)时,我收到以下错误“TypeError:serializer.normalizeResponse不是函数    at ember $ data $ lib $ system $ store $ serializer $ response $$ normalizeResponseHelper“

型号

import DS from 'ember-data';
import FixtureData from '<from somewhere>';
var Model = DS.Model.extend({
    code: DS.attr('string'),
    description: DS.attr('string')
});
Model.reopenClass({
    FIXTURES: FixtureData
});
export default Model;

适配器

import DS from 'ember-data';
export default DS.FixtureAdapter.extend({
    queryFixtures: function (records, query) {
        return records.filter(function (record) {
            for (var key in query) {
                if (query.hasOwnProperty(key)) {
                    if (record[key] !== query[key]) {
                        return false;
                    }
                }
            }
            return true;
        });
    }
});

错误堆栈

  

TypeError:serializer.normalizeResponse不是函数       在ember $ data $ lib $ system $ store $ serializer $ response $$ normalizeResponseHelper   (http://localhost:4201/assets/vendor.js:66323:43)       在http://localhost:4201/assets/vendor.js:66627:25       在Object.Backburner.run(http://localhost:4201/assets/vendor.js:9692:25)       at ember $ data $ lib $ system $ store $$ Service.extend._adapterRun(http://localhost:4201/assets/vendor.js:71877:33)       在http://localhost:4201/assets/vendor.js:66626:15       在tryCatch(http://localhost:4201/assets/vendor.js:59683:14)       在invokeCallback(http://localhost:4201/assets/vendor.js:59698:15)       在发布(http://localhost:4201/assets/vendor.js:59666:9)       在http://localhost:4201/assets/vendor.js:39006:7       在Queue.invokeWithOnError(http://localhost:4201/assets/vendor.js:10395:18

2 个答案:

答案 0 :(得分:3)

在2015年6月5日发布的Ember Data 1.0b19中已经弃用了

FixtureAdapter。这在很少的地方都有提及,教程还没有赶上:

来源:

作为FixtureAdapter的替代方案,您可以使用填充相同角色的Ember Mirage,同时还提供其他一些功能。

答案 1 :(得分:0)

同样在ember-data-fixture-adapter github页面上,他们建议立即使用PretenderJS。 https://github.com/pretenderjs/pretender