Javascript 四步注册页面中的角度形式验证

Javascript 四步注册页面中的角度形式验证,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我有一个4页的AngularJS注册模块。我只想在最后提交细节。只有在用户填写所有四个选项卡中的必填字段后,才会启用“提交”按钮。用户也可以在注册中间保存数据,不需要任何强制字段验证< /P> 我使用不同的控制器和模板的4个标签,因为它需要大量的数据作为输入 如何识别用户在四个不同控制器中填写了必填字段 我正在使用 module.value() 用于将用户数据保存为全局数据。通过这种方式,我可以在不同的控制器之间共享用户详细信息。但我无法验证表单,因为它位于四个不同的控制器/选项卡中 servi

我有一个4页的AngularJS注册模块。我只想在最后提交细节。只有在用户填写所有四个选项卡中的必填字段后,才会启用“提交”按钮。用户也可以在注册中间保存数据,不需要任何强制字段验证< /P> 我使用不同的控制器和模板的4个标签,因为它需要大量的数据作为输入

如何识别用户在四个不同控制器中填写了必填字段

我正在使用

module.value()

用于将用户数据保存为全局数据。通过这种方式,我可以在不同的控制器之间共享用户详细信息。但我无法验证表单,因为它位于四个不同的控制器/选项卡中

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">