在服务器端用AngularJS和Django REST实现一个表单验证插件

Implementing a form validation plugin with AngularJS with Django REST at the server side

本文关键字:一个 表单 插件 验证 实现 服务器端 AngularJS REST Django      更新时间:2023-09-26

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

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

Django rest返回一个JSON字符串,其中字段和错误之间存在一一对应关系。

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

问题是我该如何处理angular?

代码示例:

形式:

<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响应,以防密码丢失且电子邮件与regex:不匹配

{"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>

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