str.replace 不是 ember 2.1.0 中的函数

str.replace is not a function in ember 2.1.0

正在从

升级 Ember 项目

Ember.js 1.13.7

Ember-数据1.13.7

Ember.js 2.1.0

Ember-数据2.1.0

出现跟随错误

TypeError: str.replace is not a function

型号(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,但过去两天我一直被困在这里!

谢谢

已编辑

型号(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})
});

criteria 是一个数组,但您将其定义为字符串。

改成这样:

criteria:DS.attr({defaultValue:function(){
        return [];
    }}),

只需从负载中删除 "type":1。它在 ember-data 中的错误已在 1.13.12 release 中修复。 https://github.com/emberjs/data/pull/3725