str.replace不是ember 2.1.0中的函数

时间:2017-02-14 11:06:38

标签: ember.js ember-data

升级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})
});

2 个答案:

答案 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 [];
    }}),