模糊指令后修剪:angular2-trim-directive,即使只有一个字母也抛出错误

时间:2018-12-03 04:54:50

标签: angular trim angular2-directives

我需要使用ng2-trim-directive

修剪输入框上的模糊功能输入

角度v 6.1.10 ng2-trim-directive v 2.3.0

我们需要在反应形式输入中编写 trim =“ blur” 才能应用此功能,它可以按预期工作,并在模糊后修剪输入。

如果所有空格都空白并且在必填字段中显示错误,它也会进行修剪。 但是面临一个奇怪的问题。当用户仅输入一个字母时,会引发与所需相同的错误。

有趣的是,当写2个字母并将其从输入框中删除时,它可以很好地工作。

请问这个问题吗?

选中此demo

输入'a'。它会引发错误

现在,如果我写'aa'并删除一个字母,它不会引发任何错误。

为什么两者的行为都不一样?

有人可以调查这个问题,让我知道如何解决?

1 个答案:

答案 0 :(得分:0)

问题出在库中,因此请更改 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);
        }
    }