Backbone.js fetch()在服务器实例中返回对象而不是子对象,但在本地实例中检索子对象

时间:2017-01-16 11:04:34

标签: javascript json backbone.js

我有2个实例。我的本地操作系统是Win7,是一个带有OS Linux的服务器实例。

我正在使用以下代码获取JSON数据并将其设置为模型。

var RModel = Backbone.Model.extend({
                    idAttribute: 'name',
                    parse: function (response) {
                        return {
                            'name': response.name,
                            'title': response.title,
                            'description': response.description,
                            'parameters': new ParamsList(response.parameters)                                
                        };
                    }    
                });
                that.model = new RModel();
                that.model.url = "url/" + '?limited=false';
                that.model.fetch({
                    cache: false
                }).done(function() {
                    that.headerTemplate = that.headerTemplateEdit;
                    that.bodyTemplate = that.bodyTemplateEdit;
                    that.footerTemplate = footerTemplate;
                    that.load({});
                });

在我的本地实例中,在控制台中跟随代码的结果。

this.model
    child
    _changing:false
    _pending:false
    _previousAttributes:Object
    attributes:Object
    changed:Object
    cid:"c217"
    id:"testUndefinedParam"
    url:"/url?limited=false"
    __proto__:
    Backbone.Model

在服务器实例中

this.model
        i
    _changing: false
    _pending: false
    _previousAttributes: Object
    attributes: Object
    changed: Object
    cid: "c25920"
    id: "testDateError2"
    url: "/url?limited=false"
    __proto__: t.Model

如果有人遇到此问题,请以正确的方式检索JSON数据。

1 个答案:

答案 0 :(得分:1)

我的猜测是服务器中的代码被处理(minify / uglify),而本地的代码则没有。因此处理器刚刚将child重命名为i,将Backbone重命名为t等。您应该关注实际数据的差异,而不是控制台输出的构造函数名称。据我所知,没有标准,浏览器之间可能会有所不同