javascript - Backbone.js 模型,指定属性

标签 javascript backbone.js model

我想知道是否有一种方法可以指定必须在实例化时初始化的模型属性。

Book = Backbone.Model.extent({
 title: "title",
 author: "author",
 year: "year"

});

每当我实例化模型时,我希望限制这几个属性必须被初始化,或者至少限制足够不能设置新属性:

var book = new Book({
  title: "something",
  pages: "350"
});

最佳答案

试试这个:

Book = Backbone.Model.extent({
    defaults: {
     title: "title",
     author: "author",
     year: "year"
    }
});
<小时/>

如果您想限制这些属性,您可以使用 validate 方法来实现:

Book = Backbone.Model.extent({
    defaults: {
     title: "title",
     author: "author",
     year: "year"
    },

    validate: function(attrs, options) {
        var isValid = true;
        _.each(_.keys(attrs), function(key) {
            if (!this.defaults[key]) {
                isValid = false;
            }
        }, this);
        return isValid;
    }
});

关于javascript - Backbone.js 模型,指定属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21877190/

相关文章:

python - 如何从给定模型中获取 Graph(或 GraphDef)?

javascript - 在父数组元素上使用 if/else 在 javascript 中进行迭代

javascript - 在现有项目中使用 require.js 的成本?

javascript - 单击一个复选框时如何禁用特定的复选框? JavaScript

javascript - 使用 Backbone.js 依赖的 View 、模型、 View 的渲染函数、从另一个 View 监听事件

javascript - 我的主干下划线模板引用错误?

javascript - 使用 JS 提交 PayPal 表单不起作用

javascript - backbone.js - 映射标准 url 参数 - 使用多个参数

date - 如何让我的模型接受两种不同的日期格式?

ruby-on-rails - Geokit 和 Authlogic,在创建用户时对用户 ip 地址进行地理编码