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);
}
}
我需要 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);
}
}