backbone.js Backbone.Model不执行validate验证方法

参考backbone.js中文文档和backbone.js入门教程pdf都有类似的一段关于Backbone.Model validate方法的案例,发现这段代码并未执行validate方法,如下:

backbone.js Backbone.Model不执行validate验证方法_第1张图片

通过进一步学习和验证发现,应当绑定的是invalid事件而不是error事件,并且得使用save方法,这样才能触发validate方法,正确案例如下:

var Chapter = Backbone.Model.extend({
  validate: function(attrs) {
    if (attrs.end < attrs.start) {
      return "can't end before it starts";
    }
  }
});

var one = new Chapter({
  title : "Chapter One: The Beginning"
});

one.bind("invalid", function(model, error) {
  alert(model.get("title") + " " + error);
});

one.set({
  start: 15,
  end:   10
});
one.save();

以上demo结果

backbone.js Backbone.Model不执行validate验证方法_第2张图片

你可能感兴趣的:(JAVASCRIPT,backbone.js,backbone,model,validate)