可用的 plunker在这里
我正在使用角度ui-router
嵌套视图来实现多步骤表单(一种向导),并且在尝试验证表单时遇到了麻烦。该表单在所有嵌套视图中共享,但似乎验证仅影响放置提交按钮的嵌套视图。
嵌套视图:
$stateProvider
.state('form', {
url: '/form',
templateUrl: 'form.html',
controller: 'formController'
})
.state('form.step1', {
url: '/step1',
templateUrl: 'form-step1.html'
})
.state('form.step2', {
url: '/step2',
templateUrl: 'form-step2.html'
});
我在每个嵌套视图中都有一个必需的输入:
表单-step1.html:
<input type="text" name="required1" ng-model="formData.required1" required>
表单-step2.html:
<input type="text" name="required2" ng-model="formData.required2" required>
在这个嵌套视图(我的向导的最后一步)中,我还有提交按钮,如果表单无效,则禁用:
<button ng-disabled="form.$invalid" ng-submit="submit">Submit</button>
好吧,对于这个视图的输入,验证工作正常,但它没有记住前一个视图的输入(form-step1.html)。由于所有视图的表单都相同,我希望输入requrired1也应该得到验证。但是,尽管输入的requrired1为空,但表单被认为是有效的。
所以,我的问题是:如何验证表单并牢记所有嵌套视图的输入?
在此先感谢您的帮助。