Директива обрезки после размытия: angular2-trim-directive, ошибка выброса даже при наличии одной буквы - PullRequest
0 голосов
/ 03 декабря 2018

Мне нужно обрезать ввод по функции размытия в поле ввода и для этого использовать ng2-trim-directive library

angular v 6.1.10 ng2-trim-directive v 2.3.0

нам нужно написать trim = "blur" в реактивном вводе формы, чтобы применить эту функцию, она работает нормально, как и ожидалось, и обрезать ввод после размытия.

itтакже обрежьте все пробелы и отобразите ошибку в обязательном поле.НО сталкивается с одной странной проблемой.когда пользователь вводит только одну букву, он выдает ту же ошибку, что и требуется.

интересно, он отлично работает при написании 2 букв и удаляет последние из поля ввода.

Пожалуйста, отметьте этопроблема?

проверить это демо .

введите «а».он выдает ошибку

теперь, если я напишу 'aa' и удалю одну букву, он не выдаст никакой ошибки.

почему оба ведут себя по-разному?

кто-то может заглянуть вэта проблема и дайте мне знать, как это исправить?

1 Ответ

0 голосов
/ 04 декабря 2018

проблема была в библиотеке, поэтому измените код на input-trim.directive.ts

private updateValue(event: string, value: string): void {
        const currentValue = this.trim !== '' && event !== this.trim ? value : value.trim();
        const previousValue = this._value;
        let trimmedPreviousValue = '';
        if (Boolean(previousValue)) {
            trimmedPreviousValue = previousValue.trim();
        }

        this.writeValue(currentValue);
        const trimmedValue = this._value.trim();
        if (trimmedValue !== previousValue && (trimmedValue !== '' || trimmedPreviousValue !== '')) {
            this.onChange(this._value);
        }
    }
...