我正在尝试在这里本地化一个应用程序,我在我的模型验证消息上做了类似的事情:
var userModel = Backbone.Model.extend({
validate_msgs: {
empty_name: msg.empty,
min_length_name: msg.min,
max_length_name: msg.length,
invalid_name: msg.invalid
},
validation: {
name: [{
required: true,
msg: function(){ return this.validate_msgs.empty_name; }
},{
minLength: 3,
msg: function(){ return this.validate_msgs.min_length_name; }
},{
maxLength: 30,
msg: function(){ return this.validate_msgs.max_length_name; }
}, {
fn: "validateName"
}]
},
});
但msg的返回函数中的“this”始终指向视图,如:
Backbone.Validation.bind( this, {valid:this.hideError, invalid:this.showError});
我该如何处理?有没有更好的方法呢?
答案 0 :(得分:0)
简单明了的解决方案是直接使用验证消息:
msg: msg.empty
但我认为您有理由将msg
对象中的错误消息映射到模型上更具体的错误消息。您可以通过将验证消息定义为模型类上的静态属性来实现此目的,并直接使用模型类名称引用属性:
var UserModel = Backbone.Model.extend({
validation: {
name: [{
required: true,
msg: function() { return UserModel.validate_msgs.empty_name; }
}]
}
},
{
validate_msgs: {
empty_name: msg.empty,
min_length_name: msg.min,
max_length_name: msg.length,
invalid_name: msg.invalid
}
});