【问题标题】:Filter error messages in ng-repeat?在 ng-repeat 中过滤错误消息?
【发布时间】: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


【解决方案1】:

$setValidity 的用法很奇怪,但无论如何:

<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" ng-if="key.indexOf('TEAM:') == 0"><strong>{{ key }}</strong>.</li>
            </ul>
        </li>
    </ul>
</div>

【讨论】:

  • 做到了。谢谢!
猜你喜欢
  • 1970-01-01
  • 2015-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-19
  • 2015-06-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多