gpt4 book ai didi

javascript - 你如何创建一个在创建时可能无效的 Backbone 模型?

转载 作者:行者123 更新时间:2023-11-30 09:00:28 26 4
gpt4 key购买 nike

我正在尝试使用以下方法创建主干模型:

var newUser = new App.User({
name: $('input[name=new_user_name]').val(),
email: $('input[name=new_user_email]').val()
});

通过以下验证:

App.User = Backbone.Model.extend({

validate: function(attrs) {
errors = [];
if (_.isEmpty(attrs.name)) {
errors.push("Name can't be blank");
}
if (_.isEmpty(attrs.email)) {
errors.push("Email can't be blank");
}

return _.any(errors) ? errors : null;
},
...
});

但是,当文本框值为空时,无法创建模型,因为验证失败。

有没有办法创建模型并运行 isValid() 来检查值是否正确?还是有其他方法可以在创建模型之前运行验证?

来自backbone model creation code , 它似乎在验证失败时抛出异常 Error("Can't create an invalid model") ,但是是否可以事先检查验证?

最佳答案

您可以使用 silent: true 创建无效模型,但这样集合不会处理事件“add”。但是您可以将默认选项发送到函数添加并在 validate() 中捕获此选项

collection.add({option:'unvalid_value'}, {validation: false});
Model = Backbone.Model.extend({
validate: function(attributes, options){
if (options.validation === false)
return;
//Validation code
//.....
}
});

这样你就可以创建带有无效散列的模型)

关于javascript - 你如何创建一个在创建时可能无效的 Backbone 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9709968/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com