2016-11-22 6 views
1

動的フォームの状態に応じて、 'presence'オプションを 'true'から 'false'に変更する必要があります。formState == 'a' 'name'フィールドが必要な場合、== 'b'ならば、formStateを動的に切り替えると、バリデータはそのオプションを変更する必要があります。ember-cp-validationで作成したバリデータオプションを動的に変更する方法はありますか?

は、私はそれを行うことを試みたが、それは助けていませんでした:

//form/component.js 
init() { 
    this._super(...arguments); 

    const Validations = buildValidations({ 
     name: validator('presence', { 
     presence: Ember.computed('formState', function() { 
      return this.get('formState') == 'a'; 
     }) 
    }), 
    }); 

    // I use ember-validated-form-buffer for buffering changes 
    this.set('formValues', formBufferProperty('model', Validations)); 
} 

はそれを解決する方法はありますか?

+0

試してみますModel.formState'代わりに – Lux

+0

いいえ、このプロパティをモデルまたはバッファされたオブジェクトから取得すると機能しません – elatonsev

+0

無効なプロパティを使用: – xoma

答えて

2

ちょうどそう 無効をすることによって、このバリデータを無効にします。Ember.computed.equal(「model.formState」、「B」)

1

答えはモデルによって状態を同期することです。

//form/component.js 
init() { 
    this._super(...arguments); 

    const Validations = buildValidations({ 
     name: validator('presence', { 
      presence: Ember.computed.equal('model.formState', 'a') 
     }) 
    }); 

    // I use ember-validated-form-buffer for buffering changes 
    this.set('formValues', formBufferProperty('model', Validations)); 
} 

しかし、燃えさし - 検証 - フォームのバッファを使用する人のために:それは輸入品に敏感で注文し、少なくとも現在のバージョンでは、燃えさし-CP-検証を超えるべきである:

"ember-validated-form-buffer": "0.0.1", 
"ember-cp-validations": "3.1.2", 
関連する問題