diff --git a/addon/mixin.js b/addon/mixin.js index 2fa174f2..b8038fa2 100644 --- a/addon/mixin.js +++ b/addon/mixin.js @@ -118,6 +118,17 @@ export default Mixin.create(setValidityMixin, { this.buildValidators(); this.validators.forEach((validator) => { + let names = validator.property.split('.'); + let objectPointer = this.errors; + for (let i = 0; i < names.length; i++) { + let newObjectPointer = objectPointer[names[i]]; + if (newObjectPointer === undefined) { + newObjectPointer = emberArray(); + set(objectPointer, names[i], newObjectPointer); + } + objectPointer = newObjectPointer; + } + validator.addObserver('errors.[]', this, function(sender) { let errors = emberArray();