Javascript 如何使用自定义模板在Angular formly中设置modelValue

Javascript 如何使用自定义模板在Angular formly中设置modelValue,javascript,angularjs,validation,angular-formly,Javascript,Angularjs,Validation,Angular Formly,我已经创建了自定义模板,以添加角格式的待办事项列表 我正在尝试添加所需的验证,但它不起作用。我已经添加了验证器来检查。但viewValue、modelValue在输入字段中包含值。是否有任何方法可以使用实际模型在验证器中设置modelValue return [ { className: 'col-sm-12 col-md-12 col-lg-12', key: 'todoList', type: 'todolist', template

我已经创建了自定义模板,以添加角格式的待办事项列表

我正在尝试添加所需的验证,但它不起作用。我已经添加了验证器来检查。但viewValue、modelValue在输入字段中包含值。是否有任何方法可以使用实际模型在验证器中设置modelValue

 return [
    {
      className: 'col-sm-12 col-md-12 col-lg-12',
      key: 'todoList',
      type: 'todolist',
      templateOptions: {
        type: 'text',
        label: 'Add todo list',
        placeholder: 'Enter todo list'
      },
      validators: {
        tagLength: {
          expression: function(viewValue, modelValue) {                                 
            var value = modelValue || viewValue;
            console.log(modelValue)
            console.log(viewValue)
            //return value.length > 0;
          },
          message: '"Altest 1 Operation is required"'
        }
      }

    }
我正试图实现的是,如果todolist为空,则应该禁用submit按钮


提前谢谢。

这完全没有必要。您只需在submit按钮中设置ng show。不需要验证器。刚刚在您的jsbin链接上测试了它,它可以按预期工作。请将此标记为正确答案

ng-show="vm.model.todoList.length > 0" OR
ng-show="vm.model.todoList" (since it will be false if empty/undefined)

验证器用于验证该字段上的输入,而不是其他字段/按钮。

这完全没有必要。您只需在submit按钮中设置ng show。不需要验证器。刚刚在您的jsbin链接上测试了它,它可以按预期工作。请将此标记为正确答案

ng-show="vm.model.todoList.length > 0" OR
ng-show="vm.model.todoList" (since it will be false if empty/undefined)

验证程序将验证该字段上的输入,而不是其他字段/按钮。

谢谢您的回答。当他们的形式只有1到10时,上述变通方法可以很好地工作。但当我有todolist的“repeat section”(repeat section是angular formly模板,它从现有的form feild section中添加了新的form feild section)时,它就不起作用了。你可以简单地得到todolist索引的长度,然后检查每个索引。如果其中任何一个中有一个值,则将标志设置为true,否则,标志将保持为false,并仅使用ng show检查标志值。还是一样的概念。谢谢你的回答。当他们的形式只有1到10时,上述变通方法可以很好地工作。但当我有todolist的“repeat section”(repeat section是angular formly模板,它从现有的form feild section中添加了新的form feild section)时,它就不起作用了。你可以简单地得到todolist索引的长度,然后检查每个索引。如果其中任何一个中有一个值,则将标志设置为true,否则,标志将保持为false,并仅使用ng show检查标志值。这仍然是同一个概念。