3

我现在正在使用 Angular 为 Django REST Framework 后端实现客户端。

为了在最短时间内启动并运行项目的 Alpha,我们决定直接使用服务器端验证。

Django rest 返回一个 JSON 字符串,字段和错误之间具有一一对应关系。

Django 的这个特性可以让我在几分钟内用 jQuery 实现这样的特性。

问题是我如何用角度来做到这一点?

代码示例:

形式:

<label for="uname">Login:</label>
                    <div class="inputUnit" name="email">
                        <input tpye="email" class="text" name="email" ng-model="formData.email">
                    </div>
<label for="password">password:</label>
                    <div class="inputUnit">
                        <input type="password" class="text" name="password" ng-model="formData.password">
                    </div>

如果两个字段都为空,则来自服务器的 JSON 响应:

{"password": ["This field is required."], "email": ["This field is required."]}

如果密码丢失并且电子邮件与正则表达式不匹配,则来自服务器的 JSON 响应:

{"password": ["This field is required."], "email": ["Enter a valid e-mail address."]}

实现通用组件以向用户显示这些错误的最佳实践是什么?

显示错误后所需的 HTML:

<label for="uname">Login:</label>
                    <div class="inputUnit" name="email">
                        <input tpye="email" class="text" name="email" ng-model="formData.email">
<label for="error">Email error here</lable>
                    </div>
<label for="password">password:</label>
                    <div class="inputUnit">
                        <input type="password" class="text" name="password" ng-model="formData.password">
<label for="error">Password error here</lable>
                    </div>
4

1 回答 1

2

在这里,您可以找到我使用指令https://github.com/9ci/angle-grinder/blob/c0211c885c561f8ec820b38d506135f4fb8b6dfb/app/scripts/modules/forms.coffee#L321处理服务器端验证错误的尝试我希望它会有用为你。

于 2013-08-21T09:22:56.113 回答