我有一个广泛的Web应用程序表单,我注意到很多输入和验证信息都会重复。有没有办法减少这种情况并注册车把辅助方法?例如,我宁愿稍微删掉这段代码:
<span class="form-control-error" ng-show="personalForm.first_name.$invalid && !personalForm.first_name.$pristine || submitted && personalForm.first_name.$invalid">
<span ng-show="personalForm.first_name.$error.required">First Name is required</span>
</span>
答案 0 :(得分:0)
有一个角度指令,非常适合这个:ngMessages - https://docs.angularjs.org/api/ngMessages
这相当于您当前的代码:
<span class="form-control-error" ng-show="shouldShowFormErrors(personalForm.first_name)" ng-messages="personalForm.first_name.$errors">
<span ng-message="required">First Name is required</span>
</span>
向控制器添加一个功能,如下所示:
$scope.shouldShowFormErrors = function(formElement){
return $scope.submitted || formElement.$pristine;
};
要减少更多标记,您可以使用带有ngMessages的模板,但除非您可以使用通用错误消息(示例中的那个特定于该字段),这是不合适的。
如果您真的想要减少代码,可以制定一个指令,使用个性化消息创建ngMessages span标记。取决于你想要走多远。
我还建议使用$ touching属性而不是$ pristine属性。在这种情况下,我更喜欢它的行为。