Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度形式上的自定义验证-关于模糊_Javascript_Angularjs_Validation_Angularjs Directive_Angular Ngmodel - Fatal编程技术网

Javascript 角度形式上的自定义验证-关于模糊

Javascript 角度形式上的自定义验证-关于模糊,javascript,angularjs,validation,angularjs-directive,angular-ngmodel,Javascript,Angularjs,Validation,Angularjs Directive,Angular Ngmodel,在Angular中,我尝试验证模糊上的字段值。我有一个客户列表,我想检查字段中的模型值是否在我的客户列表中。如果不是,我想将有效性设置为false 我知道存在ng model options=“{updateOn:'blur'},但是,我不能使用此字段,因为该字段是一个typeahead,因此必须根据模型进行更新。在blur上需要进行验证 答案似乎是: 将其作为函数写入控制器,并像在指令中一样使用$SETVALITY。使用ng blur在输入字段中触发该函数 -但是,我经常遇到一些示例,其中自定

在Angular中,我尝试验证模糊上的字段值。我有一个客户列表,我想检查字段中的模型值是否在我的客户列表中。如果不是,我想将有效性设置为false

我知道存在
ng model options=“{updateOn:'blur'}
,但是,我不能使用此字段,因为该字段是一个typeahead,因此必须根据模型进行更新。在blur上需要进行验证

答案似乎是:

  • 将其作为函数写入控制器,并像在指令中一样使用$SETVALITY。使用ng blur在输入字段中触发该函数

    -但是,我经常遇到一些示例,其中自定义验证(如果模型值与列表中的值不匹配,则使字段无效)仅作为指令写入。是否有自定义验证作为函数写入的示例

  • 编写仅在模糊时触发的指令

  • 但是,我找不到做这两件事的例子。有没有人有一个自定义验证的例子,作为一个函数或一个只在字段模糊时更新的指令


    我发现这个链接对自定义验证非常有帮助,但在函数和指令之间的区别上,我仍然存在相同的问题:

    我使用了ui引导用于typeahead,并对验证进行了大量控制

    编辑-代码示例

    
    不在列表中!!


    当您选择一个不在列表中的值时,将显示div

    我已将ui引导用于typeahead,并对验证进行了大量控制

    编辑-代码示例

    
    不在列表中!!


    当您选择一个不在列表中的值时,div将显示为我们最近正在处理的内容:

    <form name='vm.formName' id='vm.formName' novalidate>
      <input type='text' id='textField' name='textField' ng-blur='vm.blurMethod()' ng-model='vm.model.text' />
      // The submit is only here for show;
      <input type='submit' id='submit' ng-click='vm.submitForm()' />
    </form>
    
    这是我脑子里想不出来的,我会在早上看一看,看看它是否反映了我们一直在使用的东西。现在更新了$setValidity调用


    这假设您使用的是controllerAs:“vm”语法,这就是为什么表单名为“vm.formname”,而控制器使用的是“This”。

    我们最近一直在研究:

    <form name='vm.formName' id='vm.formName' novalidate>
      <input type='text' id='textField' name='textField' ng-blur='vm.blurMethod()' ng-model='vm.model.text' />
      // The submit is only here for show;
      <input type='submit' id='submit' ng-click='vm.submitForm()' />
    </form>
    
    这是我脑子里想不出来的,我会在早上看一看,看看它是否反映了我们一直在使用的东西。现在更新了$setValidity调用


    这假设您使用的是controllerAs:“vm”语法,这就是为什么表单名为“vm.formname”,而控制器使用的是“This”。

    typeahead工作正常。您在说什么样的验证?如果没有结果,我希望表单中出现错误:“typeahead no results$(默认值:angular.noop)-绑定到指示是否未找到匹配结果的变量。“现在它显示没有结果,但它不会在我的表单中抛出错误。这对我没有帮助。我没有结果工作,它显示div。这部分很简单。不起作用的是验证,例如,此链接中显示的内容:。在这种情况下,如果typeahead没有显示任何结果,则不能提交表单。如果有帮助的话,下面的答案更接近于我想要的答案。你在说什么样的验证?如果没有结果,我希望表单中出现错误:“typeahead no results$(默认值:angular.noop)-绑定到一个变量,该变量指示是否未找到匹配的结果。”现在它显示没有结果,但不会在表单中引发错误。这对我没有帮助。我没有结果工作,它显示div。这部分很简单。不起作用的是验证,例如,此链接中显示的内容:。在这种情况下,如果typeahead没有显示任何结果,则不能提交表单。如果有帮助的话,下面的答案更接近于我想要的答案。这看起来很有希望,期待明天的更新Whey rrd,有没有发现它是否与你一直使用的内容匹配?是的,我更新了帖子,这就是我们正在使用的。在表单上调用$setValidity(),并将输入字段作为参数。接受您的答案,不得不调整我的解决方案,但您将我带到了正确的位置。唯一让人恼火的是,在typeahead上进行选择显然是一个“模糊”操作,因此它会在函数中运行两次。这看起来很有希望,期待明天的更新Whey rrd,有没有发现它是否与您使用的内容匹配?是的,我更新了帖子,这就是我们使用的内容。在表单上调用$setValidity(),并将输入字段作为参数。接受您的答案,不得不调整我的解决方案,但您将我带到了正确的位置。唯一令人恼火的是,在typeahead上进行选择显然算作“模糊”操作,因此它会在函数中运行两次。