我有一个按钮,点击时会增加更多的下拉选择。因此,我想删除这些选择框中已经选定的选项。
下面是我的component.html代码下拉选择
<div formArrayName="CarInfo">
<div *ngFor="let itemrow of addAnaGroupForm.get('CarInfo')['controls']; let i = index "
[formGroupName]="i">
<div class="form-group row">
<label class="col-sm-2 col-form-label">Car Name</label>
<div class="col-sm-8 txt-box">
<select (change)="onChangeCar(selectLang.value)" type="number" class="form-control"
formControlName="CarNum">
<option hidden value="">Please Select Car</option>
<ng-container *ngFor="let anaName of response">
<option type="number"[ngValue]="anaName.Id">{{ anaName.CarName }}</option>
</ng-container></select></div></div><hr>
<div class="col-md-2">
<button type="button" *ngIf="addAnaGroupForm.get('CarInfo')['controls']"
(click)="deleteRow(i)" class="a-btns btn btn-success tab-btn">
<i class="fa fa-trash" aria-hidden="true">Delete</i>
</button> </div></div>
</div>
这是我的组件。ts代码
import { HttpClient } from "@angular/common/http";
import { Component, ViewChildren } from "@angular/core";
import { FormArray, FormBuilder, FormGroup, Validators } from "@angular/forms";
@Component({
selector: "my-app",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.css"]
})
export class AppComponent {
name = "Angular";
addAnaGroupForm: FormGroup;
serverId: any;
@ViewChildren("selectLang") langSelects;
response ={
"status": "success",
"code": 200,
"payload": [
{
"Id": 21,
"CarTypeId": 2,
"CarName": "car1"
},
{
"Id": 22,
"CarTypeId": 3,
"CarName": "car2"
},
{
"Id": 23,
"CarTypeId": 4,
"CarName": "car3"
},
{
"Id": 24,
"CarTypeId": 5,
"CarName": "car4"
}
],
"error": [],
"message": "Car List"
}
list: any;
constructor(private fb: FormBuilder, private http: HttpClient) {}
ngOnInit() {
this.addAnaGroupForm = this.fb.group({
CarInfo: this.fb.array([])
});
}
onChangeCar(value) {
var str = value;
this.serverId = str.substr(3);
console.log(this.serverId);
}
aType() {
this.list = this.response.payload;
console.log(this.response);
}
get formArr() {
return this.addAnaGroupForm.get("CarInfo") as FormArray;
}
initItemRows() {
return this.fb.group({
CarNum: [""]
});
}
addNewRow() {
this.formArr.push(this.initItemRows());
this.aType();
}
deleteRow(index: number) {
console.log("nm" + index);
this.formArr.removeAt(index);
}
}
这是我的堆栈闪电战演示 https://stackblitz.com/edit/angular-wppi9b?file=src/app/app.component.html
当我理解你正确时,你想把响应中的每辆车都添加到你显示的列表中吗?
因此,当选定的汽车项目时,需要从onChangeCar(value)-方法中的列表属性中删除它。
从这里解释的数组中删除
首先,您需要关联<code>this.response。有效载荷与您的this.formArr
。然后,您将从
数组。this的其他对象中拼接
所选汽车。formArr
onChangeCar(value) {
var str = value;
this.serverId = str.substr(3);
var index = this.response.payload.findIndex(x => x.Id == this.serverId);
this.response.payload.splice(index, 1);
}
我需要能够从角材料列表中删除选定的项目。为此,我决定从初始项目数组中减去选定项目数组(不确定这是最好的方法)。 我的问题是,我找不到一种方法来将超文本标记语言中的选定项数组传递给TS并使用它。 Angular材料在其留档中有以下示例: 其中x是mat-seltion-list选择器的ID,y是对所选元素执行的操作。但这似乎只适用于超文本标记语言。 下面是我不工作的代码。 HTML,其中我设置了列表
问题内容: 通常,我使用它来返回所选选项的值,但这一次它不起作用。所选标签的ID HTML代码 问题答案: 对于下拉选项,您可能想要这样的东西: 之所以不能解决问题,是因为单击选项不会更改下拉菜单的值,它只是将属性添加到作为下拉菜单的 子 项的所选选项中。
我想在选择另一个select元素的一个选项时显示一个select元素,在选择另一个选项时隐藏它。 这是JavaScript: 感谢任何帮助。谢谢
我有一个下拉列表和提交按钮,以及名为水果的表头 例如:如果我从下拉列表中选择一个选项,并单击提交按钮。从列表中选择的选项,应该显示在表格单元格中。
我想在下拉列表中隐藏所选项目。 我试图从选择事件的数据源中删除该项目,并直接将文本和值分配给下拉列表。但是值将是空的,可能是因为设置的值不存在于数据源中。在剑道留档中找不到解决方案。
我正在使用npm模块编辑数据表单。下面是我的API响应示例: 下面是编辑组件所需的代码行 我需要显示下拉列表中选择的公司名称的现有值。