繁体   English   中英

控制器中的AngularJS表单有效性

[英]AngularJS form validity within controller

据我所知,$ valid属性(以及其他类似属性)可通过控制器的$ scope.formname.inputname。$ valid访问。

我玩过这个游戏: http : //plnkr.co/edit/oEfdMpI3URooJhRFfSUr?p=preview

this.validity = $scope.myForm.input.$valid; //ADDED THIS LINE

为什么我在script.js中添加的这一行会中断它? 我希望{{ctrl.validity}}会显示为true。

您将该行添加到了控制器的构造函数中。

到构造函数实例创建时,视图中的表单尚未编译。

尝试使用$timeout延迟执行该行,以使其起作用:

var ctrl = this;

$timeout(function () {
  ctrl.validity = $scope.myForm.input.$valid; //ADDED THIS LINE
});

或者,如果您想使其保持同步,请使用$watch

$scope.$watch('myForm.input.$valid', function (isValid) {
  ctrl.validity = isValid;
});

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM