服务是否应负责验证数据?

时间:2014-03-20 18:56:59

标签: angularjs

我想知道服务应该负责什么。我们来看一个提供注册(电子邮件,密码)功能的UserService。

选项1 :服务仅在不检查电子邮件/密码参数的情况下调用api。检查在控制器中完成。

选项2 :服务检查参数,然后在数据看起来正常时调用api。控制器只调用该服务。

我总是选择选项1,但也许这不是有角度的方式。

1 个答案:

答案 0 :(得分:0)

我个人会使用与ng-model一起使用的内置验证。使用ng-patternng-requried(等)属性。

这允许您在输入源处进行验证,并执行使用户体验更好的事情,例如突出显示无效字段,禁用提交按钮以及所有这些好东西。

验证服务本身的唯一好处是,您可以略微减少写入的代码量,我猜它可能会多一点" DRY"

我想有一个中间件,您在服务上定义一个函数,如果输入有效则返回true,然后您可以在表单中使用该函数来启用/禁用/突出显示内容。

简而言之,我认为" angular"这样做的方式是服务之外,但这里没有黑色或白色 - 无论哪种方式最适合您和您的具体实施。