下面是我的.ts文件,
import { Component } from '@angular/core';
@Component({
selector: 'app-event-binding',
templateUrl: './event-binding.component.html',
styleUrls: ['./event-binding.component.css']
})
export class EventBindingComponent {
textColor = '';
onInput = (ev: any) => {
this.textColor = ev.target.value;
}
}
下面是我的HTML模板,
<div>
<h3 [style.color]="textColor">EVENT BINDING</h3>
<input type="text" (input)="onInput($event)">
</div>
这里当我在输入框中完全输入“blue”时,h3的文本颜色变为蓝色。但是我注意到**当我按退格键时,现在textColor的值为“blu”,文本仍然保持蓝色。我希望返回黑色。**只有当我清除整个输入时,它才变为黑色。那么在html中,颜色中是否保留了某种历史?这是什么?
1条答案
按热度按时间nx7onnlm1#
用纯JavaScript操作DOM时也会发生同样的情况,我为您准备了一个示例:
当试图设置一个浏览器认为无效的值时,操作不会执行。你可以在DOM中看到内联样式的值没有更新。在这种情况下,将使用最后一个 * valid * 值。在这里,Angular的工作原理与普通JavaScript相同。
作为一种解决方法,您可以使用
CSS.supports()
检查输入的值是否有效,然后恢复为黑色: