【发布时间】:2016-08-30 18:28:32
【问题描述】:
拥有这两个文件:
HTML:
<form name="registrationForm" ng-submit="registerUser()">
...
</form>
JS(在 Angular 控制器内部):
$scope.registrationForm.confirmPassword.$setValidity("PasswordsMatch", $scope.validation.doPasswordsMatch);
我收到Cannot read property 'confirmPassword' of undefined的错误
这让我相信我无法访问控制器中的registrationForm 表单。基于此 (https://docs.angularjs.org/api/ng/type/ngModel.NgModelController) 我想我应该这样做。
我见过的其他解决方案包括在提交表单时将表单传递给控制器,但我需要做的事情(设置自定义验证)需要在此之前发生。
其他解决方案提到通过ng-controller 将控制器添加到表单中,但这并没有改变。
编辑:
从上面的网站看,是不是有原因,为什么在这里(https://plnkr.co/edit/ZT0G6ajdbescT72qLKSU?p=preview)$scope.myForm 可以访问,但只能在$scope.setEmpty 函数内部?
【问题讨论】:
-
<form form="registrationForm" ng-submit="registerUser()">应该是<form name="registrationForm" ng-submit="registerUser()">,名称是表单标签的有效属性 -
抱歉,原来是
name,而不是form。刚刚解决了这个问题。
标签: javascript angularjs angularjs-scope