角度成分应检查其输入的有效性吗?

时间:2016-12-03 19:36:49

标签: angularjs

这是一个更普遍的问题。

我创建了一个应该执行以下操作的过滤器:

取一个或两位数的数字,然后返回两位数字

angular.module('myModule').filter('twoDigits', function() {
    return function(input) {
        return ('0' + input).slice(-2);
    };
});

我使用表单验证来确保输入的数字是0到99之间的数字。

但是我知道如果我把一个空值或一个字符串等我的过滤器会表现得很傻。

当我设计角度组件时。 我应该控制组件逻辑中的内容吗?

或者我应该从外部控制输入(比如表单验证)。

1 个答案:

答案 0 :(得分:0)

根据我的经验,通常最好在用户填写表单时实时进行某种形式的验证,并在服务器处理数据时在后端进行表单验证。

前端验证可以提高用户体验,因为它减少了用户认为输入所有必需信息后可能出现的错误数量,只是发现某些内容格式错误且有错误再试一次,直到他们做对了。

后端验证可以减少您可能不知道的漏洞(表单SQL注入)以及防止您遇到的任何麻烦,例如当用户试图在电话号码条目中添加短划线( - )时只允许数字(或一定数量的字符等)。此外,总有办法绕过前端验证,通过控制台中的javascript调整,技术上允许用户输入数据,而无需通过前端验证进行过滤。

最佳做法是在正面和背面进行验证。