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});}}};

以上是我在映射模型时使用的验证映射,如下所示

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

问题是这似乎不起作用。似乎传递给“相等”验证函数的 emailAddress 对象不是视图模型中的可观察对象。指定“其他”可观察对象的正确语法是什么?

4

1 回答 1

1

几个月后,但无论如何;)我发现的唯一方法是在绑定之后扩展验证:

...
myViewModel = ko.validatedObservable(ko.mapping.fromJS(data, validationMapping));
ko.applyBindings(myViewModel);
myViewModel().emailAddress.extend({ equal: myViewModel().emailAddressConfirm });
于 2013-06-04T01:25:04.833 回答