角度材料通过外部事件验证形式

时间:2017-02-05 10:15:27

标签: javascript angularjs angular-material

我有一个多部分表单,我希望有一个外部的next / prev导航。但是,当我导航到下一个时,我需要能够验证表单的每个部分。

我有以下样本表单定义:

<form layout="column" name="nProfileForm1">
    <md-input-container>
        <label>City</label>
        <input ng-model="profile.city" required="" name="nCity">
        <div ng-messages="nProfileForm1.nCity.$error"  ng-if="nProfileForm1.nCity.$touched&&!nProfileForm1.nCity.$valid">
            <div ng-message="required">City is required.</div>
        </div>
    </md-input-container>
</form>

如果字段与之交互,则验证工作正常,并且正确显示错误文本。但是,如果发生外部事件,我无法找到触发所有表单字段验证的方法。向每个表单部分添加自己的提交按钮似乎有些不对。我正在寻找的是类似于架构形式的东西:

$scope.$broadcast('schemaFormValidate')

任何想法都会受到赞赏。

基本上,在下面的示例中,我希望按下下一个按钮后,该字段会以红色点亮: http://codepen.io/Vladimir_M/pen/OWEjOd

更新:更新了codePen以包含我找到的一个解决方案。

1 个答案:

答案 0 :(得分:0)

经过一些尝试后,我找到了一种方法来实现我用最少代码实现的效果。获取表单的范围并将表单的$ submitted属性设置为true就可以了。它评估整个表格。

from django.urls import path

urlpatterns = [
    path('questions/<uuid:question_id>/', MyView.as_view()), 
]

随意提出更好的方法。