Angular 如何在[(ngModel)]中使用Map()?
我试图在一个特定的键上把一个特定的值放到一个映射中 在我的代码中,我使用Angular 如何在[(ngModel)]中使用Map()?,angular,typescript,Angular,Typescript,我试图在一个特定的键上把一个特定的值放到一个映射中 在我的代码中,我使用ngFor在数组中循环。我在每次迭代中得到的项应该是映射的键值,而用户输入相应的值 重要提示:变量userInputValue不存在。这就是我问题的重点:如何获取userInputValue,以便将其应用于地图? 我希望你能理解我的意思 项是任何字符串,例如“Name”,用户输入值将是用户在输入字段中键入的任何内容,在这种情况下如何获取后者 在my Component.html中 <form *ngFor="let i
ngFor
在数组中循环。我在每次迭代中得到的项应该是映射的键值,而用户输入相应的值
重要提示:变量userInputValue
不存在。这就是我问题的重点:如何获取userInputValue
,以便将其应用于地图?
我希望你能理解我的意思
项
是任何字符串,例如“Name”
,用户输入值
将是用户在输入字段
中键入的任何内容,在这种情况下如何获取后者
在my Component.html中
<form *ngFor="let item of myStringArray">
<input [(ngModel)]="map.set(item, userInputValue)">
</form>
当然,这个解决方案也很有效,但是我被告知使用Map来代替。您可以将[(ngModel)]
分为两部分,[ngModel]
和(ngModelChange)
,并在每个部分调用相应的Map
方法。用户键入的值由ngModelChange
事件的$event
参数给出
<form *ngFor="let item of myStringArray">
<input name="value" [ngModel]="map.get(item)" (ngModelChange)="map.set(item, $event)">
</form>
请参阅演示。非常感谢,非常有帮助!
// the string would be something like: "Name;34"
this.finalInputWithContext.forEach((item) => {
if (item.split(";")[0] === "Name") {
concole.log(item.split(";")[1]); // will print 34
}
});
<form *ngFor="let item of myStringArray">
<input name="value" [ngModel]="map.get(item)" (ngModelChange)="map.set(item, $event)">
</form>