backbone.validation icon indicating copy to clipboard operation
backbone.validation copied to clipboard

Call custom function that validates whole model instead of fields

Open taivo opened this issue 11 years ago • 1 comments

Is there a way to call a function that validates the model as a whole instead of individual attributes. This would allow more flexible validation of relationship among attributes instead of just their values.

This also allows working with inherited model classes that already have a validate() method defined. For example, if you're working with a mobile backend like Parse.com, whose js API is based on Backbone but instead of Backbone.Model, you are required to use Parse.Object. This class has a method Parse.Object.validate that takes care of a few behind the scene data fields. I'm trying to figure out a way to call Parse.Object.validate either before or after the normal flow of backbone-validation

taivo avatar Jul 17 '14 07:07 taivo

Not exactly pretty but one way you can do that:

_.extend(MyModel.prototype, Backbone.Validation.mixin);

MyModel.prototype.validate = function () {
  var errors = Backbone.Validation.mixin.validate.apply(this, arguments);

  if (errors) { return errors; }

  // put you validation here
};

Hope it helps.

alancasagrande avatar Aug 07 '14 14:08 alancasagrande