0

ノックアウト.jsとノックアウト.検証を使用しています。book author name と book name の 2 つのプロパティを含む book ビュー モデルを作成しました。

function BookViewModel(bookObject) {
        var self = this;
        self.AuthorName = ko.observable(bookObject.AuthorName)
            .extend({
                required: { message: "Please enter menu name" },
                minLength: 4,
                maxLength: 10
            });
        self.Name = ko.observable(bookObject.Name)
            .extend({
                required: { message: "Please enter course name" },
                minLength: 4,
                maxLength: 10
            });
}

プロパティにネイティブ検証ルールを適用しました。これで、プロパティ値が有効かどうかを次の方法で確認できることがわかりました。

     bookViewModelObject.AuthorName.isValid()

上記のステートメントを使用して、ユーザーが入力した著者名が検証ルールを満たしているかどうかを確認できます。私の質問は、 bookViewModel のすべてのプロパティが有効かどうかを単一のステートメントで確認するにはどうすればよいですか? 次のような意味です。

     bookViewModelObject.isValid() 
4

2 に答える 2

2

使用できますko.validation.group

var viewModel = new BookViewModel(data);
viewModel.errors = ko.validation.group(viewModel);

には、いくつviewModel.errorsかのエラーがありviewModelます。

ここにフィドルがあります:http://jsfiddle.net/vyshniakov/3J3qV/

于 2012-10-23T14:09:02.230 に答える
0

これが以前に機能したかどうかはわかりませんが、現在 (KnockoutJS 3.0 と検証プラグイン 2.1 を使用) でそれを行うことができます。

ko.validation.init();
var validatedViewModel = ko.validatedObservable(new BookViewModel(book))();
ko.applyBindings(validatedViewModel);

validatedViewModel.isValid();

ko.validatedObservable()メソッドに注意してください。

これが適切なjsfiddleです。

于 2013-12-17T17:35:46.653 に答える