Aurelia ViewModelのオブジェクトプロパティを検証しようとしています。Aureliaがネストしたオブジェクトを検証する
のViewModel
@autoinject
class AddUserForm {
user: User;
controller: ValidationController;
constructor(controllerFactory: ValidationControllerFactory) {
this.controller = controllerFactory.createForCurrentScope();
}
validate() {
this.controller.validate.then(res => {
console.log(res.valid);
})
}
}
ValidationRules
.ensure((u: User) => u.id).displayName('User').required()
.on(AddUserForm)
のViewModel - >表示
<template>
<form click.trigger="validate()">
<input type="text" value.bind="user.id & validate" />
</form>
</template>
ユーザー
class User {
id: string
}
私がいる問題は、バリデータがネストされたユーザーオブジェクトを拾っていないことです。私はこれを稼働させるために何かを逃していますか?私はdocsを読んで、これはうまくいくはずです。私はプラグインのバージョン^1.0.0
を使用しています。
.on(AddUserForm)の代わりに.on(User)に変更してください。 – mgiesa
@mgiesa現在有効なオブジェクトではなく、Userオブジェクトの検証がどのように行われますか? – Rodrigo
"user"というプロパティがUserタイプで、自動的に検証するという事実を拾わない場合(私がそうしているかどうか覚えていない)、this.controller.addObject(this.user)あなたの検証メソッドでthis.controller.validate()を呼び出す前に – mgiesa