从
升级Ember项目Ember.js 1.13.7
Ember-data 1.13.7
以
Ember.js 2.1.0
Ember-data 2.1.0
获得以下错误
TypeError:str.replace不是函数
model(trends.js)
import DS from 'ember-data';
export default DS.Model.extend({
name:DS.attr('string',{defaultValue:''}),
daterangekey:DS.attr('number',{defaultValue:0}),
daterange:DS.attr(),
actiondata:DS.attr(),
criteria:DS.attr('string',{defaultValue:function(){
return [];
}}),
unit:DS.attr('number',{defaultValue:1}),
viewtype:DS.attr('number',{defaultValue:3})
});
路线(trends.js)
import Ember from 'ember';
export default Ember.Route.extend({
model:function()
{
return this.store.findAll('trend');
},
});
有效负载返回表单服务器是
{"trends":[{"viewtype":3,"name":"Trend A","daterangekey":0,"type":1,"unit":1,"actiondata":[{"label":"action 2","id":3}],"criteria":[],"id":"1000000000027"}]}
我真的试图绕过EmberJS,但过去两天我一直被困在这里!
由于
被修改
model(trends.js)
import DS from 'ember-data';
export default DS.Model.extend({
name:DS.attr('string',{defaultValue:''}),
daterangekey:DS.attr('number',{defaultValue:0}),
daterange:DS.attr(),
actiondata:DS.attr(),
criteria:DS.attr({defaultValue:function(){
return [];
}}),
unit:DS.attr('number',{defaultValue:1}),
viewtype:DS.attr('number',{defaultValue:3})
});
答案 0 :(得分:1)
只需从有效负载中删除"type":1
即可。它在ember-data中的错误已在1.13.12 release中得到修复。
https://github.com/emberjs/data/pull/3725
答案 1 :(得分:0)
criteria
是一个数组,但您将其定义为字符串。
像这样改变:
criteria:DS.attr({defaultValue:function(){
return [];
}}),