ember-validationsを使用して単一のコンポーネントでフィールドを検証しようとしていますが、検証オブジェクトを内部にハードコーディングするのではなく、コンポーネントに渡す可能性を与えています。このコード:
EditDefaultPropertyComponent = Ember.Component.extend EmberValidations.Mixin,
validations:
value:
numericality: true
onValueObserver: Ember.observer('value', ->
@validate()
.then(() =>
...
console.log 'good'
@set 'error', null
)
.catch((err) =>
...
console.log 'bad'
@set 'error', err
)
)
setupFlags: (->
...
).on('init')
問題なく動作しますが、コンポーネントの初期化時に任意の検証をパラメーターとしてコンポーネントに渡した検証オブジェクトをセットアップする場合は、たとえばsetupFlagsで次のようにします。
setupFlags: (->
@setProperties(
...
@set 'validations', Ember.copy ( { value: { numericality: true }}))
).on('init')
うまくいきません。入力に関係なく、常に「良い」と出力されます。アクセスしたら
console.log (@get 'validations')
@validateメソッドのthen()ブランチ内では、オブジェクトが表示されます。ここに制御フローがありませんか?