【发布时间】:2015-04-15 00:17:34
【问题描述】:
我有一个使用 Angular 验证的多页(html 模板)表单。是否可以使用 $setValidity 和使用字符串过滤器的 ng-repeat 仅显示某些错误消息?如果没有,有什么建议吗?
我想捕获错误,$setValidity,然后根据错误来自的表单页面有条件地显示某些错误消息。
这是 Angular 验证代码:
///TEAM DATA
if (!$scope.formData.TeamContactFirstName) {
$scope.signupform.$setValidity('TEAM: Please provide a Team Contact First Name', false)
$scope.failedForms.team = true;
isValid = false;
}
if (!$scope.formData.TeamContactLastName) {
$scope.signupform.$setValidity('TEAM: Please provide a Team Contact Last Name', false)
$scope.failedForms.team = true;
isValid = false;
}
//PROJECT BASICS
if (!$scope.formData.Title) {
$scope.signupform.$setValidity('BASICS: Please provide a project title.', false)
$scope.failedForms.basics = true;
isValid = false;
}
if (!$scope.formData.ProjectLocation) {
$scope.signupform.$setValidity('BASICS: Please provide the location of the project', false)
$scope.failedForms.basics = true;
isValid = false;
}
这是中继器:
<div ng-show="signupform.$invalid" class="alert-box alert radius">
<ul>
<li ng-repeat="(key, errors) in signupform.$error">
<ul>
<li ng-repeat="e in errors"><strong>{{ key }}</strong>.</li>
</ul>
</li>
</ul>
</div>
我希望能够仅显示此中继器的 TEAM DATA 错误。过滤?
【问题讨论】:
-
我不确定 $error 里面是什么,但我认为角度 ng-repeat 跳过项目以
$开头。 -
谢谢。虽然代码没有任何问题 - 它正在工作。问题是是否可以添加过滤器以有条件地显示结果。如果没有,也许是另一种选择。
-
对不起,我好像误解了你的问题,希望有人能回答。
-
e 错误 |过滤器:'TEAM' 不起作用?
-
@Petr No. 那是我第一次去。我在想它也会在字符串中提取一个关键字。没有运气。
标签: javascript angularjs