在客户端和服务器端

时间:2016-12-09 15:37:02

标签: angularjs forms validation

我正在计划在客户端上基于AngularJS的新项目,让我们在服务器上说Java或PHP。

AngularJS应用程序提供了一种简单的注册表格,例如:用户名,姓名,电子邮件,密码和确认密码。

我目前正在寻找定义表单输入数据验证的最佳方法。

一方面,定义应该影响客户端应用程序。例如,验证定义用户名必须包含4到14个字符,AngularJS应在无效输入上显示错误,而不首先向服务器发送验证请求。我想AngularJS在启动时读取定义文件(可能是JSON或XML)并在客户端强制执行这些要求。

另一方面,接收提交的表单数据的服务器端代码也应该依赖相同的定义文件来验证传递的表单数据。

当然,如果没有服务器,客户端无法执行一些验证,例如,是否输入了唯一的用户名。

我的问题是,在客户端使用AngularJS时,是否有框架,扩展,最佳实践或配方如何实现表单输入验证的单一真实来源?服务器端的Java或PHP示例?

2 个答案:

答案 0 :(得分:1)

我在后端使用了Spring,在前面使用了Angular,我在进行验证时也想知道同样的事情,但是没有任何类型的框架。最好的办法是使用HTTP标准来传递后端的错误。

例如,如果您完成客户端验证(用户名和密码足够长,不是空等),然后将该数据发送到后端以确保用户名已经没有用完,那么然后想要使用适当的HTTP状态代码以及响应中的其他内容进行响应。在这种情况下,如果后端的所有内容都正常,则为200状态,或类似409的冲突。 HTTP可能是您正在寻找的标准,它仍然允许您具有令人难以置信的灵活性。

然后,您可以在Angular中处理这些状态代码,并在处理逻辑后在客户端执行不同的操作。

答案 1 :(得分:1)

我找到http://json-schema.org/并坚持服务器端Java验证的实现https://github.com/everit-org/json-schema和客户端JavaScript验证的https://github.com/zaggino/z-schema