我有一个主干。表单编辑器,它是一个带有true
和false
选项的选择菜单。当我将字符串值转换为布尔值并返回getValue()
方法验证失败时。我猜是因为我们返回的是false。此外,由于字符串值,底层模型总是将属性设置为true(因此是布尔值的原因)。
(function() {
'use strict';
Backbone.Form.editors.BooleanSelect = Backbone.Form.editors.Select.extend({
initialize: function(options) {
options.schema.options = [
{ val: 'true', label: 'Yes' },
{ val: 'false', label: 'No' }
];
Backbone.Form.editors.Select.prototype.initialize.call(this, options);
},
getValue: function() {
return this.$el.val() === 'true' ? true : false;
},
setValue: function(value) {
this.$el.val(value);
}
});
})();
您可以重写validate()方法(在Backbone.Form.editors.Base中定义),这会修复它