2

试图让我的头绕过 Backbone,并且工作得很好,直到我遇到了下面的障碍,这让我觉得我做错了。

在下面的代码中,我有一个模型和一个集合。该集合称为bb.model.Settings一个函数,该函数调用changetheme它获取一个值。现在我有这么远的价值,但是当我去保存这个项目时,我需要将它传递给模型吗?我正在尝试调用模型中的保存函数,但我想知道我是否真的需要这个,它总是失败。我应该只保存收藏还是保存它的最佳方法

bb.model.Setting = Backbone.Model.extend(_.extend({    
    defaults: {
        theme: 'e'
    },

    initialize: function() {
        var self = this
        _.bindAll(self)
    },
    save: function() {
        var self = this
        _.bindAll(self)
    },
}))


bb.model.Settings = Backbone.Collection.extend(_.extend({  
    model:  bb.model.Setting,
    localStorage: new Store("settingb"),

    initialize: function() {
        var self = this
        _.bindAll(self)
    },
    changetheme: function(value) {
        var self = this
        _.bindAll(self)
        this.remove
        this.model.save() 
    },
}))
4

1 回答 1

2

尝试检查这个小提琴,你的代码中有几个错误:

http://jsfiddle.net/8gDqb/1/

这是 js 部分,请参阅小提琴以获取完整的工作示例:

var bb = {};
bb.model={};

bb.model.Setting = Backbone.Model.extend({    
    defaults: {
        theme: 'e'
    },

    initialize: function() {
        var self = this
        //_.bindAll(self) // no longer necessary with backbone.js
    },
    save: function() {
        var self = this
        //_.bindAll(self) // no longer necessary with backbone.js
    },
});


bb.model.Settings = Backbone.Collection.extend({  
    model:  bb.model.Setting,
    //localStorage: new Store("settingb"),

    initialize: function() {
        var self = this
        //_.bindAll(self) // no longer necessary with backbone.js
    },
    changetheme: function(value) {
        var self = this
        _.bindAll(self)
        //this.remove
        //_.bindAll(self) // no longer necessary with backbone.js
    },
});

此外,以防万一您正在阅读有关网络骨干网的旧方法,您不再需要 bindAll 了。这已经有一段时间没有必要了。

于 2012-10-29T20:49:34.020 回答