2012-08-23 43 views
15

Chúng tôi đang sử dụng Knockout.js và plugin xác thực Knockout. Khi người dùng quay lại trang có lỗi xác thực, chúng tôi muốn thông báo lỗi hiển thị. Có ai biết nếu nó có thể kích hoạt xác nhận loại trực tiếp mà không thực sự thay đổi câu trả lời bị ràng buộc?Xác nhận Knockout - Cách hiển thị thông báo lỗi

Trả lời

42

Giải pháp là gọi showAllMessages. Nếu mô hình khung nhìn có các quan sát lồng nhau, hãy đảm bảo đặt ko.validation.configure để sử dụng nhóm sâu vì giá trị mặc định là sai.

Ví dụ:

viewModel.save = function() 
{ 
    var result = ko.validation.group(viewModel, {deep: true}); 
    if (!viewModel.isValid()) 
    { 
     alert("Please fix all errors before preceding"); 
     result.showAllMessages(true); 

     return false; 
    } 

    //actually save stuff, call ajax, submit form, etc 
} 

Ngoài ra, bạn có thể thay thế !viewModel.isValid() với result().length > 0

+9

Lưu ý rằng validatedObservable gọi nhóm đằng sau hậu trường và các cửa hàng trong tài sản sai sót, vì vậy không có cần phải làm nhóm của riêng bạn. 'if (! ViewModel.isValid()) { chế độ xemModel.errors.showAllMessages(); } ' –

+4

Trừ khi bạn cần tùy chọn sâu, sau đó bạn phải làm nhóm của riêng bạn ... –

+0

Cảm ơn bạn. Điều này cực kỳ hữu ích. – Quickhorn

Các vấn đề liên quan