【问题标题】:How do I apply knockout validation inside foreach binding如何在 foreach 绑定中应用淘汰赛验证
【发布时间】:2013-06-18 13:30:26
【问题描述】:

我的目标是在作为视图模型集合的一部分并在 foreach 绑定中可见的输入上应用敲除所需的验证器。到目前为止,这是我所拥有的 - 错误总是评估为 0,不确定我在哪里出错了。

   var vm = {

    myCollection: myCollection,  <-- im binding the foreach onto this property, and consists of a collection of Items



    submit: function () {
        if (vm.errors().length == 0) {
            alert('Thank you.');   <-- errors is always 0
        } else {
            vm.errors.showAllMessages();
            app.showMessage('There were some errors...', '');
        }
    }
};


 var Item = function (data) {

        self.name = ko.observable().extend({ required: true });

 }

vm["errors"] = ko.validation.group(vm);


<div data-bind="foreach: myCollection">
<input type="text" 
data-bind="value: name,
validationOptions: {errorElementClass: 'input-validation-error' }" />

【问题讨论】:

    标签: knockout.js knockout-validation


    【解决方案1】:

    我难得的修复..

    将此添加到项目模型中,

        self["itemerrors"] = ko.validation.group(self);
    

    然后在vm的submit方法中遍历数组

         ko.utils.arrayForEach(vm.mycollection(), function (name) {
              name.itemerrors.showAllMessages();
         });
    

    工作愉快

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-13
    • 2013-03-14
    • 2014-04-13
    • 2019-07-25
    • 2014-01-10
    • 1970-01-01
    • 2013-11-14
    • 2012-02-18
    相关资源
    最近更新 更多