将值设置为Backbone.Model中的折叠默认值

Set values to the folded defaults in Backbone.Model

本文关键字:折叠 默认值 Model Backbone 设置      更新时间:2023-09-26

在默认值中有一个对象:

app.MultiwidgetModel = Backbone.Model.extend({
    defaults : {
        ....
        operatorData        : {
                helloBlock  : null, 
                greeting    : null, 
                avatarBlock : null, 
                avatarImg   : null  
            },
        ....    
    },
    initialize: function(){
        ....
    }
});

我如何在初始化函数中设置值到operatorData内部属性(helloBlock, greeting)等?如果可能的话,我应该使用什么语法?

如果您只是想在初始化中设置当前模型的值并触发适当的change事件,那么这应该可以工作:

app.MultiwidgetModel = Backbone.Model.extend({
    defaults : {
        ....
        operatorData        : {
                helloBlock  : null, 
                greeting    : null, 
                avatarBlock : null, 
                avatarImg   : null  
            },
        ....    
    },
    initialize: function(){
        var opData = this.get('operatorData');
        opData.helloBlock = 'foo';
        opData.greeting = 'bar';
        ...
        this.set({operatorData: opData}); // Without this, the data will change but you won't have a change:operatorData event triggered
    }
});

如果你想编辑默认值,你应该可以使用

app.MultiwidgetModel.prototype.defaults.operatorData = {
    helloBlock  : 'foo', 
    greeting    : 'bar'  
}

这是你想要的吗?