如何在包含对象的模型属性上设置Backbone.Validation验证?

时间:2013-04-16 15:15:09

标签: validation backbone.js

我有一个具有密码属性的模型。请求有效负载中的密码属性如下:

loginId: "yourId",
password: {password: yourpassword}

如何使用Backbone.validation设置验证?

我试图这样做:

validation: {
   loginId: {
       required: true,
       msg: 'Please Enter a Login ID.'
    },
   password: {
       required: true,
       msg: 'Please Enter a Password.' 
   }
}

但是,我的密码始终无法通过验证。我认为这是因为代码无法检查密码属性的哈希内的密码属性。你知道如何使这个验证正常工作吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我能够通过在模型中使用自定义验证功能来实现这一目标:

validation: {
    loginId: {
      required: true,
      msg: 'Please Enter a Login ID.'
    },
    password: function(value, attr, computedState) {
      if(!value || !value.get('password')) {
          return 'Please enter a password.';
      }
    {
},
default: function(){
    return {
        "password" : new Backbone.Model(),
    }; 
},

我必须指定默认模型,因为模型上的密码属性实际上是服务器上的密码模型,因此您需要为初学者提供空白模型。我还必须确保我视图中的绑定设置正确。