From 459a74d1a54b8dc3fa0275a70057adb20b6156d5 Mon Sep 17 00:00:00 2001 From: Yoni Jah Date: Fri, 12 Aug 2016 15:04:23 +0800 Subject: [PATCH] fixed multiple calls to onInit --- addon/validators/base.js | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/addon/validators/base.js b/addon/validators/base.js index 46280673..26ee52ad 100644 --- a/addon/validators/base.js +++ b/addon/validators/base.js @@ -11,28 +11,23 @@ export default Ember.Object.extend({ 'if': get(this, 'options.if'), unless: get(this, 'options.unless') }; - this.model.addObserver(this.property, this, this._validate); + this.dependentValidationKeys.pushObject(this.property); + this.pushConditionalDependentValidationKeys(); + this.addObserversForDependentValidationKeys(); }, - addObserversForDependentValidationKeys: Ember.on('init', function() { + addObserversForDependentValidationKeys: function() { this.dependentValidationKeys.forEach(function(key) { this.model.addObserver(key, this, this._validate); }, this); - }), - pushConditionalDependentValidationKeys: Ember.on('init', function() { + }, + pushConditionalDependentValidationKeys: function() { Ember.A(['if', 'unless']).forEach((conditionalKind) => { const conditional = this.conditionals[conditionalKind]; if (typeof(conditional) === 'string' && typeof(this.model[conditional]) !== 'function') { this.dependentValidationKeys.pushObject(conditional); } }); - }), - pushDependentValidationKeyToModel: Ember.on('init', function() { - var model = get(this, 'model'); - if (model.dependentValidationKeys[this.property] === undefined) { - model.dependentValidationKeys[this.property] = Ember.A(); - } - model.dependentValidationKeys[this.property].addObjects(this.dependentValidationKeys); - }), + }, call: function () { throw 'Not implemented!'; },