在Backbone.js中验证期间更改值

时间:2012-11-08 02:15:31

标签: javascript backbone.js

我有一个Backbone模型,并在调用setter时进行一些验证。而不是返回错误,我想覆盖该值。我该怎么做?

myObj = Backbone.Model.extend({
  // Attributes
  x: function() { },
  y: function() { },

      // Validation
      validate: function(atr) {

            // Checking for number
            var numberRegex = /^\d+$/;

            if(!numberRegex.test(atr.x)) // not number
                  atr.x = 'NA'; // Trying to set x to "NA"
      }
});

谢谢!

1 个答案:

答案 0 :(得分:1)

您在验证功能中收到的atr是您的模型属性的副本。因此,更改它不会更改模型中的属性。在验证调用this.set('x','NA',{silent:true});内设置属性。