如何在初始化函数中重置骨干集合

时间:2014-03-19 17:32:07

标签: javascript backbone.js

我想在Backbone Collection的初始化函数中重置集合。

以下是我的收藏

var RatesCollection = Backbone.Collection.extend({
    model: RatesModel,
    initialize: function(res){
        var newData = [];
        var rateData = [];
        this.columns = _.keys(res);
        _.each(res, function(val, key){
           // console.log(key);
           // console.log(val);
            newData.push(_.map(val,function(value){
                return [key, value];
            }));
        });
        this.data = _.zip.apply(_,_.values(newData));
        _.each(this.data,function(val){
            rateData.push(_.object(val));
        });
        this.reset( rateData,{silent: true});
        console.log(rateData);
    }
});

这是当前的jsfiddle http://jsfiddle.net/GswXR/14/

我尝试了另一种方法,为initialize函数中的语句定义一个新函数 getCollection ,并按预期工作。(工作jsfiddle http://jsfiddle.net/GswXR/12/)。

更新

我尝试使用解析

如下图所示

 initialize: function(options){
        this.parse(options);
    },
    parse: function(res){
       var newData = [];
        var rateData = [];
        this.columns = _.keys(res);
        _.each(res, function(val, key){
           // console.log(key);
           // console.log(val);
            newData.push(_.map(val,function(value){
                return [key, value];
            }));
        });
        this.data = _.zip.apply(_,_.values(newData));
        _.each(this.data,function(val){
            rateData.push(new RatesModel(_.object(val)));
        });
        console.log(rateData);
        return rateData;
    }

但仍无效

0 个答案:

没有答案