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>