[英]Switched over js object to Ember Data model using Fixture Adapter and keep getting “Cannot call method 'findAll' of undefined” error
[英]Store.findAll on Model using Fixture Adapter with Ember Data 2.0
當前,我們正在升級項目以與Ember 2.0和Ember Data 2.0一起使用。
我有基於夾具適配器的模型。 但是,當我在模型上執行store.findAll(modelName)時,出現以下錯誤“ TypeError:serializer.normalizeResponse不是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;
});
}
});
錯誤堆棧
類型錯誤:serializer.normalizeResponse不在余燼$數據$ $ LIB系統$ $商店串行$響應函數$$ normalizeResponseHelper( HTTP://本地主機:4201 /資產/ vendor.js:66323:43 )在HTTP://位於Object.Backburner.run的localhost:4201 / assets / vendor.js:66627:25 ( http:// localhost:4201 / assets / vendor.js:9692:25 )處於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 /資產/ vendor.js:59683:14 )在invokeCallback( HTTP://本地主機:4201 /資產/ vendor.js:59698:15 )在發布( HTTP://本地主機:4201 /資產/ vendor.js :59666:9 ),位於Queue.invokeWithOnError( http:// localhost:4201 / assets / vendor.js:10395:18 )的http:// localhost:4201 / assets / vendor.js:39006:7
FixtureAdapter
在2015年6月5日發布的Ember Data 1.0b19中已棄用。在一些地方都提到了這一點,並且教程尚未趕上:
資料來源:
作為FixtureAdapter
的替代,您可以使用Ember Mirage , FixtureAdapter
可以扮演相同的角色,又可以提供其他一些功能。
同樣,在ember-data-fixture-adapter
github頁面上,他們建議立即使用PretenderJS。 https://github.com/pretenderjs/pretender
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.