Backbone.js - 验证模型构造函数参数

时间:2012-12-01 04:15:48

标签: validation backbone.js parameters constructor options

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

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

推荐的解决方案是什么?

1 个答案:

答案 0 :(得分: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");
},

See this working demo.

修改

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

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

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

See here.