Javascript 四步注册页面中的角度形式验证
我有一个4页的AngularJS注册模块。我只想在最后提交细节。只有在用户填写所有四个选项卡中的必填字段后,才会启用“提交”按钮。用户也可以在注册中间保存数据,不需要任何强制字段验证< /P> 我使用不同的控制器和模板的4个标签,因为它需要大量的数据作为输入 如何识别用户在四个不同控制器中填写了必填字段 我正在使用 module.value() 用于将用户数据保存为全局数据。通过这种方式,我可以在不同的控制器之间共享用户详细信息。但我无法验证表单,因为它位于四个不同的控制器/选项卡中Javascript 四步注册页面中的角度形式验证,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我有一个4页的AngularJS注册模块。我只想在最后提交细节。只有在用户填写所有四个选项卡中的必填字段后,才会启用“提交”按钮。用户也可以在注册中间保存数据,不需要任何强制字段验证< /P> 我使用不同的控制器和模板的4个标签,因为它需要大量的数据作为输入 如何识别用户在四个不同控制器中填写了必填字段 我正在使用 module.value() 用于将用户数据保存为全局数据。通过这种方式,我可以在不同的控制器之间共享用户详细信息。但我无法验证表单,因为它位于四个不同的控制器/选项卡中 servi
serviceApp.value('UserData',{});
当你写作时:
<form name="formName" ng-controller="TheCtrl" ...>
如果未填写myInput
,则表单对象将具有$invalid=true
以上描述了解决方案的原理。您应该有4个窗体和4个相应的控制器。如果定义如上,则每个控制器都知道其相应表格的有效性。共享服务(甚至是
model.value()
中的字段)将跟踪每个表单的有效性状态,例如:
app.controller("Form1Ctrl", function($scope, sharedService) {
$scope.$watch("form1Name.$valid", function(newval) {
sharedService.validity.form1 = newval;
});
...
});
只有在所有表单都有效时,才会启用“最终提交”按钮:
<button ng-disabled=" sharedService.validity.form1 == false
|| sharedService.validity.form2 == false
|| sharedService.validity.form3 == false
|| sharedService.validity.form4 == false">
<button ng-disabled=" sharedService.validity.form1 == false
|| sharedService.validity.form2 == false
|| sharedService.validity.form3 == false
|| sharedService.validity.form4 == false">