【问题标题】:KO.mapping + KO.validation, how to validate two properties using validation mappingKO.mapping + KO.validation,如何使用验证映射来验证两个属性
【发布时间】:2013-02-12 14:04:05
【问题描述】:
 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 对象不是视图模型中的可观察对象。指定“其他”可观察对象的正确语法是什么?

【问题讨论】:

  • 你能展示一些equal函数的代码吗?

标签: knockout.js knockout-mapping-plugin knockout-validation


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2015-10-18
    • 2012-09-29
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多