Разница между onCreate () и onStart ()? [Дубликат]

Работая над проблемой самостоятельно, и это то, что у меня есть до сих пор. Это более или менее работает, но после этого невозможно добавить минус из-за новой проверки значения. Также не разрешает запятую как разделитель тысяч, только десятичную.

Это не идеально, но может дать некоторые идеи.

app.directive('isNumber', function () {
            return function (scope, elem, attrs) {
                elem.bind('keypress', function (evt) {
                    var keyCode = (evt.which) ? evt.which : event.keyCode;
                    var testValue = (elem[0].value + String.fromCharCode(keyCode) + "0").replace(/ /g, ""); //check ignores spaces
                    var regex = /^\-?\d+((\.|\,)\d+)?$/;                        
                    var allowedChars = [8,9,13,27,32,37,39,44,45, 46] //control keys and separators             

                   //allows numbers, separators and controll keys and rejects others
                    if ((keyCode > 47 && keyCode < 58) || allowedChars.indexOf(keyCode) >= 0) {             
                        //test the string with regex, decline if doesn't fit
                        if (elem[0].value != "" && !regex.test(testValue)) {
                            event.preventDefault();
                            return false;
                        }
                        return true;
                    }
                    event.preventDefault();
                    return false;
                });
            };
        });

Позволяет:

11 11 .245 (в контроллере, отформатированном при размытии до 1111.245)

11,44

- 123.123

-1 014

0123 (отформатирован на размытие до 123)

не позволяет:

! @ # $ / *

abc

11.11.1

11,11.1

.42

143
задан Community 23 May 2017 в 12:34
поделиться