Knockout-Validation
Knockout-Validation copied to clipboard
Validation on nested objects not working after changing whole object
Hi, I have a problem with validating nested objects. I have following view model:
var ViewModel = function (first) {
this.person = ko.observable(new Person(first));
this.changePerson = function () {
this.person(new Person("changed"));
};
};
var Person = function (first) {
this.firstName = ko.observable(first).extend({
required: true
});
};
everything works as expected as long as I do not call changePerson function. After calling change if I have element with data-bind="person().firstName" validation messages will not show. Working example (http://jsfiddle.net/MDhUR/). I found a work round to this issue - if I use to bind to firstName everything works as expected (http://jsfiddle.net/seRr5/1/) .
regards.
@skwasiborski I've updated your fiddle to make it work - I manually inserted the validation message element. I'll look into this to see where the problem is. Until then, here's the updated fiddle
I had same problem, nested observables with validation. So the one magic:
in self.errors = ko.validation.group(self.submissionAnswers, { deep: true, live: true });
pay attention on special additional param: object that contains field live: true