1

我想用模型做简单的事情:

  • 如果它们有效,则使用构造函数参数(但不仅仅是分配它们,我必须先映射它们,因为它们采用不同的格式)
  • 在其他情况下,使用defaults

对此有什么推荐的解决方案?

4

1 回答 1

1

isValid()您可以通过调用来实现这一点initialize。如果有效,则照常进行;否则,清除模型并将其重置为默认值:

initialize: function() {
    console.log("initializing model...");
    if (!this.isValid()) {
        console.log("Model is not valid, using defaults");
        this.clear({ silent: true });
        this.set(this.defaults, { silent: true });
    }
    console.log("Model is valid");
},

请参阅此工作演示。

编辑

可以在模型构造函数中使用对象,例如:

var model = new Backbone.Model({
    title: "test",
    hsa: {
        h: 120,
        s: "100%",
        a: "50%"
    }
});

您还可以将其指定为hsa: "120, 100%, 50%"或其他内容,并将该值转换为构造函数中的对象。

看这里。

于 2012-12-01T11:35:10.830 回答