我需要控制台在没有标题的情况下创建歌曲时通知 我试过了,但控制台什么都没显示。 语法错误既不会被抛出
var Song = Backbone.Model.extend({
defaults:
{
title: "default title",
track: 0
},
initialize: function()
{
this.on("change:title", function(){
console.log("title changed");
});
this.on("error",function(model,error)
{
console.log(error);
});
},
validate: function(attribs)
{
if (attribs.title === "default title")
{
return "please set a title";
}
}
});
var song1 = new Song;
song1.set({ track: 1});
答案 0 :(得分:1)
Backbone 1.1 slightly changed how validation works:
模型验证现在仅在保存时默认强制执行 - 而不是在集合中 除非传递
{validate:true}
选项。现在模型验证 触发“无效”事件而不是“错误”。
尝试
song1.set({track: 1}, {validate: true});
并将您的听众更改为
this.on("invalid", function(model, error) {
console.log(error);
});