【发布时间】:2019-03-26 11:12:23
【问题描述】:
我正在寻找一种方法来修改将存储在模型中的输入值。
例如,我想在用户输入输入时将字符串更改为大写。或者,也许,对某些字符进行某种替换。
我可以为每个输入分配一个唯一的(更改)方法,但我希望所有输入都有一个单一的“dealWithInput($event)”方法。
所以输入会是这样的:
<input name="description" type="text" [(ngModel)]="myObject.description" (change)="dealWithInput($event)"/>
<input name="description" type="text" [(ngModel)]="myObject.name" (change)="dealWithInput($event)"/>
…
然后在component.ts中:
dealWithInput(event) {
//do some magic to alter the value of myObject.description
// or myObject.name
// or …
}
我如何知道要更改哪个字段?我尝试修改输入(类似于 event.target.value = "whatever"),但这不会改变模型。
我想我也可以在模型类中实现一个 setter,但我很好奇如何仅使用输入事件来做到这一点(它可能有一天会派上用场)。
有什么想法吗?还是有更好的方法?
谢谢!
【问题讨论】:
-
reactive forms 怎么样?您可以轻松订阅任何元素(输入)
标签: angular events input angular6