1

ビューモデルには、ko.observableダイアログ状態オブジェクトを格納するメンバーがあります。各ダイアログ オブジェクトには、ダイアログの入力フィールドに対応するあらゆる種類のメンバーがあります。KnockoutJS 検証プラグインを使用して、ダイアログに検証を追加したいと考えています。

ただし、ビュー モデル全体に​​検証を追加するのではなく、ダイアログだけに検証を追加したいと考えています。このようにダイアログを拡張しようとしたとき:

    this.dialog = ko.observable(new RegistrationDialog(self)).extend({validatable: true});

正しく動作しませんでした: isValid() および errors() メソッドが定義されておらず、検証が正しく機能していませんでした。これを説明するためにjsfiddleを作成しました。スタート ボタンを押すと、ダイアログが開きます (CSS がないことを許してください) が、Enter キーを押してもエラー メッセージは生成されません。電子メールの検証も機能せず、「true は適切な電子メール アドレスではありません」というメッセージが表示されます。

4

2 に答える 2

2

私はドキュメントに行きます:

this.dialog = ko.validatedObservable(new RegistrationDialog(this));

次に、フィドルのいくつかのバグを修正します。

  • データブラインド
  • フォームのハンドラーをクリックします(送信の代わりに、と思います)
  • あなたが持っている登録ボタンenable: isValidenable: isValid()(フォーム送信バインディングを修正したため、クリックバインディングも削除しました)

そうだったと思います。ここでフィドルを更新しました

于 2012-07-07T01:34:01.653 に答える
1

ここに作業バージョンがあります:

http://jsfiddle.net/t9zLH/8/

内部にエラー グループを追加し、登録メソッドが成功する前に確認します。そうでない場合は、エラーを表示します。

于 2012-07-07T01:09:33.427 に答える