2
var validationMapping = { 

     emailAddress: { 
      create: function (options) { 
       return ko.observable(options.data).extend({ required: true }).extend({email:true}); 
      } 
     }, 
     emailAddressConfirm: { 
      create: function (options) { 
       return ko.observable(options.data).extend({ required: true }).extend({ email: true }) 
       .extend({equal: emailAddress});}}}; 

Выше мое отображение подтверждение, что я использую, чтобы при отображении модели, как показано нижеKO.mapping + KO.validation, как проверить два свойства, используя отображение проверки

$.post('getaccountdata', {}, 
     function (data) { 
      if (data != "") { 
       myViewModel = ko.validatedObservable(ko.mapping.fromJS(data, validationMapping)); 
       ko.applyBindings(myViewModel); 
      } 
     }); 

Проблема заключается в Безразлично» похоже, работает. Похоже, что объект emailAddress, передаваемый в «равную» функцию проверки, не является наблюдаемым из модели представления. Каков правильный синтаксис для указания «другого» наблюдаемого?

+0

вы можете показать некоторый код равной функции? – Overmachine

ответ

1

Через несколько месяцев, но в любом случае;) Единственный способ я нашел продлить проверку после привязки:

... 
myViewModel = ko.validatedObservable(ko.mapping.fromJS(data, validationMapping)); 
ko.applyBindings(myViewModel); 
myViewModel().emailAddress.extend({ equal: myViewModel().emailAddressConfirm });