2012-10-23 31 views
29

Knockout.validation eklentisini kullanmaya çalışıyorum. Bir exampleViewModel:Ko.validation.group işlevi nasıl kullanılır?

Oluşturuldu Yukarıdaki görünüm modelinde, geçerli nesne için hatalar adlı bir doğrulama grubu oluşturdum. Artık herhangi bir doğrulama kuralı 4'ten 1'inde bu hatadan daha fazla başarısız olursa, bir hata iletisi vardır.

My question is, Ben sadece 3 mülkünden oluşan bir doğrulama grubu oluşturmak istiyorum 4 (P1, P2, P3) 4 bundan nasıl yapabilirim?

cevap

53

Bu benim için iyi çalıştı. this'da gruplandırmak yerine, doğrulamak istediğiniz özellikleri tutan bir proxy nesnesi oluşturun. Bunu yaparsanız

this.errors = ko.validation.group({ 
    P1: this.P1, 
    P2: this.P2, 
    P3: this.P3 
}); 

, validatedObservable yerine group ait kullanmayı düşünün. Hataları almanızla kalmaz, aynı zamanda isValid özelliğini kullanarak tüm özelliklerin geçerli olup olmadığını kontrol edebilirsiniz. Sadece belirli gözlenebilirleri doğrulamak için documentation doğru yolu açıklandığı gibi

this.validationModel = ko.validatedObservable({ 
    P1: this.P1, 
    P2: this.P2, 
    P3: this.P3 
}); 

// is the validationModel valid? 
this.validationModel.isValid(); 
// what are the error messages? 
this.validationModel.errors(); 
+0

Durandal gözlemlenebilir Eklenti doğrulama sorunu ayıklamaya bu yaklaşımı kullanılır. this.errors = ko.validation.group ({P1: gözlemlenebilir (bu, 'P1')}); “Alıcı/belirleyicileri tespit etmesi ve buna göre tepki vermesi gerektiğine inanıyorum, ama bu en azından doğrulama çalışmalarını kanıtladı. – MrYellow

11

geçerli:

this.errors = ko.validation.group([this.P1, this.P2, this.P3]); 
+6

Belgelerden: > "Ayrıca, ilk parametrenin bir dizi olması gerekmediğine dikkat edin. Yalnızca tek bir nesneye sahipseniz, onu bir diziye sarmadan çıplak bir nesne olarak iletebilirsiniz." Belge bağlantısı için –

+0

tks! – Alex

İlgili konular