在 angular 中传递所选值的对象 4 / 5
Pass Object of the selected value in angular 4 / 5
我对 angular 有点陌生,不确定这是否可行,但是 -
我在下拉列表中加载了一组对象。这个数组只向用户显示播放器的名称,当用户选择名称时,我想将所选名称的整个对象传递给控制台或 HTTP get 方法。但是,现在我只得到输入框内的值,而不是原来的整个对象字段。
object array as seen in the console
这是下拉菜单HTML一侧的代码
<form [formGroup]="userForm1" (ngSubmit)="onSubmit1()">
<div class="form-group">
<label class="field field_type1">
<input list="browsers" type="text" class="field__input form-control" placeholder="e.g. Melnikov Stanislav" formControlName="name1">
<datalist id="browsers">
<span class="field__label-wrap">
<span class="field__label">Search Player</span>
</span>
<option *ngFor="let pointers of atkpointer" [ngValue]="pointers">{{pointers.Name}}</option>
</datalist>
</label>
<div>
<button type="submit" class="button type3">
Submit
</button>
</div>
</div>
</form>
组件端代码:
onSubmit1(){
console.log(this.userForm1.value);
}
我得到的输出是:
OUTPUT that I'm getting
所以我在输出中真正想要的是 OVA、Balance、Crossing 和类似所选值的东西,而不是玩家的名字。但是我们需要使用名称来识别玩家
更新您在提交功能中的值。
onSubmit1(){
const payload: any = this.userForm1.value;
payload.user = this.atkpointer.find(u => u.name === payload.name1);
console.log(payload);
}
您的选项值应该是简单的字符串,而不是完整的对象。我没有评论你 HTML 的有效性,但你肯定需要意识到这一点。
编辑 仅存储对象:
onSubmit1(){
const user: any = this.atkpointer.find(u => u.name === this.userForm1.value.name1);
console.log(user);
}
我对 angular 有点陌生,不确定这是否可行,但是 -
我在下拉列表中加载了一组对象。这个数组只向用户显示播放器的名称,当用户选择名称时,我想将所选名称的整个对象传递给控制台或 HTTP get 方法。但是,现在我只得到输入框内的值,而不是原来的整个对象字段。
object array as seen in the console
这是下拉菜单HTML一侧的代码
<form [formGroup]="userForm1" (ngSubmit)="onSubmit1()">
<div class="form-group">
<label class="field field_type1">
<input list="browsers" type="text" class="field__input form-control" placeholder="e.g. Melnikov Stanislav" formControlName="name1">
<datalist id="browsers">
<span class="field__label-wrap">
<span class="field__label">Search Player</span>
</span>
<option *ngFor="let pointers of atkpointer" [ngValue]="pointers">{{pointers.Name}}</option>
</datalist>
</label>
<div>
<button type="submit" class="button type3">
Submit
</button>
</div>
</div>
</form>
组件端代码:
onSubmit1(){
console.log(this.userForm1.value);
}
我得到的输出是:
OUTPUT that I'm getting
所以我在输出中真正想要的是 OVA、Balance、Crossing 和类似所选值的东西,而不是玩家的名字。但是我们需要使用名称来识别玩家
更新您在提交功能中的值。
onSubmit1(){
const payload: any = this.userForm1.value;
payload.user = this.atkpointer.find(u => u.name === payload.name1);
console.log(payload);
}
您的选项值应该是简单的字符串,而不是完整的对象。我没有评论你 HTML 的有效性,但你肯定需要意识到这一点。
编辑 仅存储对象:
onSubmit1(){
const user: any = this.atkpointer.find(u => u.name === this.userForm1.value.name1);
console.log(user);
}