Reputation: 517
Upgrading Ember project from
Ember.js 1.13.7
Ember-data 1.13.7
to
Ember.js 2.1.0
Ember-data 2.1.0
Getting Following Error
TypeError: str.replace is not a function
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})
});
Route (trends.js)
import Ember from 'ember';
export default Ember.Route.extend({
model:function()
{
return this.store.findAll('trend');
},
});
payload returning form server is
{"trends":[{"viewtype":3,"name":"Trend A","daterangekey":0,"type":1,"unit":1,"actiondata":[{"label":"action 2","id":3}],"criteria":[],"id":"1000000000027"}]}
I'm really trying to wrap my head around EmberJS but I've been stuck here on this for the last two days!
Thanks
Edited
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})
});
Upvotes: 2
Views: 743
Reputation: 12872
Just remove "type":1
from the payload. Its bug in ember-data and it has been fixed in 1.13.12 release.
https://github.com/emberjs/data/pull/3725
Upvotes: 1
Reputation: 9406
criteria
is an array but you define it as string.
Change like this :
criteria:DS.attr({defaultValue:function(){
return [];
}}),
Upvotes: 0