2012-08-23 24 views
15

Knockout.js ve Knockout onaylama eklentisini kullanıyoruz. Bir kullanıcı doğrulama hataları olan bir sayfaya döndüğünde, hata iletilerinin görüntülenmesini istiyoruz. Bağımlı cevabı gerçekten değiştirmeden nakavt onaylamayı tetiklemenin mümkün olup olmadığını bilen var mı?Knockout Doğrulama - Hata iletilerini gösterme

cevap

42

Çözüm showAllMessages'ı çağırmaktır. Görünüm modelinde iç içe geçmişler varsa, varsayılan değer yanlış olduğundan derin gruplamayı kullanmak için ko.validation.configure öğesini ayarladığınızdan emin olun.

Örnek:

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 
} 

Alternatif olarak, validatedObservable hataları özelliğinde sahneleri ve mağazalarda arkasında grubu çağırır result().length > 0

+9

Not ile !viewModel.isValid() yerine geçebilir, bu yüzden kendi grubunu yapmaya gerek yoktur. 'if (! ViewModel.isValid()) { viewModel.errors.showAllMessages(); } ' –

+4

Derin seçeneğe ihtiyacınız olmadıkça, kendi grubunuzu yapmalısınız ... –

+0

Teşekkür ederiz. Bu inanılmaz derecede yardımcı oldu. – Quickhorn

İlgili konular