Trim 在 blur 指令 : angular2-trim-directive 之后,即使只有一个字母也会抛出错误

Trim after blur directive : angular2-trim-directive , throw error even there is a single letter

我需要 trim 在输入框上输入模糊功能,为此使用 ng2-trim-directive

angular v 6.1.10 ng2-trim-指令 v 2.3.0

我们需要在响应式输入中编写 trim="blur" 来应用此功能,它按预期工作正常并且 trim 模糊后输入。

如果必填字段上的所有空格和显示错误,它也会 trim。 但是面临一个奇怪的问题。当用户只输入一个字母时,它会抛出与要求相同的错误。

有趣的是,它在写 2 个字母并从输入框中删除后者时工作正常。

请检查一下这个问题好吗?

检查此 demo

输入 'a'。它抛出错误

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

为什么两者的行为不同?

有人可以调查这个问题并告诉我如何解决吗?

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