gpt4 book ai didi

backbone.js - 主干验证功能没有被调用

转载 作者:行者123 更新时间:2023-12-04 01:24:57 25 4
gpt4 key购买 nike

我的验证函数没有在下面的代码中被调用:-

var Vehicle = Backbone.Model.extend({
color: 'green',
validate: function (attrs) {
var validColors = ['white', 'red', 'blue', 'yellow'];
var colorIsValid = function (attrs) {
if (!attrs.color) return true;
return _.contains(validColors, attrs.color);
}
if(!colorIsValid(attrs)) {
return "color must be one of: " +validColors.join(",");
}
}
});

var car = new Vehicle();

car.on('error', function (model, error) {
console.log(error);
});

console.log(car.get('color'));
car.set('color', 'muave');

请看 fiddle
http://jsfiddle.net/vineet85/Fa8jr/5/

有人能告诉我为什么没有调用验证函数吗?

最佳答案

在 Backbone.js validatesave 上自动调用但不是在 set .

如果您希望在设置值时运行验证,您将需要使用 validate选项。例如

car.set('color', 'muave', {validate: true});

http://backbonejs.org/#Model-validate
error当尝试保存对象时,通常在服务器上发生错误时触发事件。见 http://backbonejs.org/#Events-catalog

如果您想捕获验证失败,请尝试处理 invalid事件:
car.on('invalid', function (model, error) {
console.log(error);
});

关于backbone.js - 主干验证功能没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14445358/

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