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

标签 javascript backbone.js syntax model initialization

我在默认值中有一个对象,如下所示:

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'  
}

这就是你想要的吗?

关于javascript - 将值设置为 Backbone.Model 中的折叠默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32244134/

相关文章:

Python 使用 lambda 函数时语法无效

javascript - DataTables:如何将类设置为表格行单元格(而不是表格标题单元格!)

javascript - 如何在点击外部时关闭 jquery-ui 对话框?

javascript - AngularJS应用程序在登录后重定向

javascript - 如何在 iScroll 中为滚动条设置动态宽度?

javascript - 为什么我的主干 View 渲染将 "undefined"放在顶部?

backbone.js - 如何检测主干中的 jquery 转义键事件?

javascript - 使用 marionette 添加主干提取的集合结果

C# 在枚举中使用数字

Java:toString 的员工层次结构格式错误