自定义验证[AngularJS]

时间:2014-05-28 09:38:01

标签: javascript angularjs angularjs-directive

我正在编写用于在输入文本框上实现验证的代码。哪个应该允许用户只输入数字。几乎成功实现了这一功能,但面临一个困难: 我无法删除输入的最后一个字符。

app.directive('num', function () {
return {
    restrict: 'A',
    require: 'ngModel',
    link: function (scope, el, attrs, ctrl) {

        var lastValidValue;
        var NUMBER_REGEXP = /^[0-9]+$/;
        ctrl.$parsers.push(function (value) {
            console.log('inside parsers')
            console.log("Last " + lastValidValue + ", View " + ctrl.$viewValue + ", model " + ctrl.$viewValue);
            if (NUMBER_REGEXP.test(value)) {
                console.log('true')
                lastValidValue = value;
            }
            else {
                ctrl.$viewValue = lastValidValue;
                ctrl.$render();
            }
            console.log("Last " + lastValidValue + ", View " + ctrl.$viewValue + ", model " + ctrl.$viewValue);
            return lastValidValue;
        });
    }
}

})

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

尝试将if (NUMBER_REGEXP.test(value))更改为if (NUMBER_REGEXP.test(value) || value == '')