在控制器中调用angular $ setValidity

网络袋熊

我有一个输入字段和一个按钮,用户可以在其中输入要进行地理定位的地址。这是更大表单的一部分,但是我希望当他们按下“映射它”按钮而不是提交最终表单时,能够处理该字段的有效性。如何将此字段设置为无效?调用会$setValidity导致未定义/不是函数错误。

表格位:

<form name="myForm">
  <input type="text" name="addy" ng-model="addy">
  <a ng-click="geoCode()">Map it!</a>
  <span class="error" ng-hide="myForm.addy.$invalid">Bad field</span>
  ....
</form>

控制器:

$scope.addy = null

// This is a more complex async function trimmed down to essentials
$scope.geoCode = function() {
  $scope.addy.$setValidity('unique', false);
});

我也希望该字段仅被检查一次。因此,如果他们输入地址并且不按Map it按钮,那么将在提交时对其进行检查,但是如果他们按Map按钮并且字段有效,则它将不再通过异步功能运行。有关如何最好地处理此问题的建议?

领主部落

如果您想validity在控制器中设置输入字段的,您可以简单地传递表单并访问您的输入,就像在标记中一样。我还提供了一个工作示例:

var app = angular.module('form-example', []);

app.controller('FormCtrl', function($scope) {
  var vm = this;

  vm.geoCode = function(form) {
    form.addy.$setValidity('unique', false);
  };
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>

<form ng-app="form-example" name="myForm" ng-controller="FormCtrl as vm">
  <input type="text" name="addy" ng-model="vm.addy">
  <a ng-click="vm.geoCode(myForm)">Map it!</a>
  <span class="error" ng-hide="myForm.addy.$invalid">Bad field</span>
</form>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在$ formatters中调用$ setValidity

在控制器内部使用$ setValidity

如何在控制器中以$ modal形式在角度元素上使用$ setValidity?

指令在字段上调用setValidity(false),但字段有效性永远不会因视图而改变

$ setValidity | TypeError:无法读取未定义的属性“ $ setValidity”

角setValidity不起作用?

Angular ui中未调用控制器

在控制器中模拟angular js服务调用

在Angular中创建后立即调用控制器函数

angular:调用控制器函数中的重复项

服务未在控制器中调用

在 Symfony 控制器中调用 KernelInterface

控制器中的函数未被调用

通过服务的AngularJS $ setValidity不起作用

AngularJS setValidity导致modelValue不更新

AngularJs:在数组输入上使用$ setValidity

ngModel。$ setValidity只工作一次

Angular JS:如何在Angular指令中从控制器的链接内部调用函数

从Angular指令内的ng-click中调用父控制器中的方法

Angular中控制器之间的通信

angular JS控制器中的函数调用以随机顺序执行

如何为相同的路由链接在Angular 4中调用组件控制器?

如何在Angular 1.6.7的子组件中调用父控制器函数

如何从页面中的jQuery调用Angular JS函数控制器

控制器初始化后,在angular .run()中执行$ http调用

Angular JS-在外部控制器中调用指令函数

在Angular js控制器中调用外部js文件功能

Angular.js-仅调用多个子控制器/多个控制器之一

在其他控制器中在Application控制器中定义的调用方法