在键入文本时将在较低的情况下,但是鼠标集中在较低的情况下,然后第一个字母必须更改为大写。
我假设您不使用反应性形式。不需要单独的指令,您需要做的就是处理焦点外事件。基本上,您可以将focusout
事件绑定到输入。集中精力后,trigger()
方法将被解雇。
在您的component.html上,
<input class="form-control" (focusout)="trigger($event)" [(ngModel)]="sampleInput" type="text">
和在您的组件上,trigger()
方法将第一个字母转换为大写。然后,我们将转换的字符串分配给您的模型(sampleInput
)
sampleInput: string = undefined;
.
.
trigger(event) {
const inputValue = event.target.value;
const result = inputValue.charAt(0).toUpperCase() + inputValue.slice(1);
this.sampleInput = result;
}
但是,在不太相关的音符上,我个人最喜欢的是通过纯CSS处理。但是,当然,该解决方案有局限性,因为它使字符串中每个单词的第一个字母(例如'hi john' ->'hi john')大写,而不仅仅是整个字符串的第一个字母。该方法的一个明显优势是不会突变该字符串的基本值,因为只有"显示"受到影响。
input {
text-transform: capitalize;
}