Angular 需要帮助传递用户输入数据以动态更改表单吗
角度问题:我试图获取用户下拉选择的值,以便动态填充下一个下拉列表,并仅显示应基于其原始选择返回的选项。我有一个函数,它接受$event的值,点击我的JSON文件,然后返回正确的字符串来填充下一个下拉列表,但唯一显示的是一个空下拉列表 我抛出了虚拟html来测试NgIf,并了解它的工作情况以及从我的函数返回的值,因为它们已经登录到控制台。在这里真的是不知所措,除非在幕后我对angular有些不了解,否则我应该能够将函数中的值插入到NgFor,并为第二个下拉菜单提供新创建的选项 post.component.ts:Angular 需要帮助传递用户输入数据以动态更改表单吗,angular,forms,ngfor,Angular,Forms,Ngfor,角度问题:我试图获取用户下拉选择的值,以便动态填充下一个下拉列表,并仅显示应基于其原始选择返回的选项。我有一个函数,它接受$event的值,点击我的JSON文件,然后返回正确的字符串来填充下一个下拉列表,但唯一显示的是一个空下拉列表 我抛出了虚拟html来测试NgIf,并了解它的工作情况以及从我的函数返回的值,因为它们已经登录到控制台。在这里真的是不知所措,除非在幕后我对angular有些不了解,否则我应该能够将函数中的值插入到NgFor,并为第二个下拉菜单提供新创建的选项 post.compo
export class PostComponent implements OnInit {
rForm: FormGroup;
title: String;
description: String;
category: String;
subCategory: String;
item: String;
deathDate: Date;
claimedBy: String;
specifics: String;
selections = postOptions;
currentOptions: String[]
showSecond: boolean = false
showThird:boolean= false
currentName:String
toggleCategory(event) {
this.showSecond = true
let selectedTitle = (event.target.value);
this.currentName = event.target.getAttribute('name')
this.currentOptions = this.displaySubcategory(selectedTitle,
this.currentName);
}
displaySubcategory(str: any, dataToDisplay: String) {
let childData = {
index: 0,
options: [],
};
for (let i = 0; i <= this.selections.length; i++) {
if (str === this.selections[i].department) {
childData.index = i;
for
(let j = 0; j < this.selections[i].children.length; j++)
{
childData.options.push
(this.selections[i][`${dataToDisplay}`][j].title)
}
}
return childData.options;
}
}
导出类后组件实现OnInit{
rForm:FormGroup;
标题:字符串;
描述:字符串;
类别:字符串;
子类别:字符串;
项目:字符串;
死亡日期:日期;
claimedBy:String;
细节:字符串;
选择=后选项;
currentOptions:String[]
showsond:boolean=false
showThird:boolean=false
当前名称:字符串
切换类别(事件){
this.showSecond=true
让selectedTitle=(event.target.value);
this.currentName=event.target.getAttribute('name'))
this.currentOptions=this.displaySubcategory(selectedTitle,
此名称(当前名称);
}
显示子类别(str:any,dataToDisplay:String){
让childData={
索引:0,
选项:[],
};
对于(让i=0;i不要将您的
包装在div中。它应该是
您的第二个下拉列表是关于“items”。在您的代码中,不要更改“items”的值(更重要的是,您的代码中没有items变量)我真不敢相信我没听懂。谢谢。我建议直接在选项标签上使用*ngFor
,或者有什么理由不这样做吗?我同意。我只是想更符合OP的方法。
<div class="panel-body">
<div class="dropdown">
<select class="form-control" id="category"
(change)="toggleCategory($event)"
[(ngModel)]="this.category" name="children">
<option>scenery</option>
<option>electrical</option>
<option>material</option>
<option>etc</option>
</select>
</div>
<div *ngIf="this.showSecond">
<div class="dropdown">
<select class="form-control" id="category
(change)="toggleCategory($event)"
[(ngModel)]="currentOptions" name="item">
<div *ngFor="let item of items">
<option>{{item}}</option>
</div>
</select>
</div>
</div>
<select class="form-control" id="category
(change)="toggleCategory($event)"
[(ngModel)]="currentOptions" name="item">
<ng-container *ngFor="let item of items">
<option>{{item}}</option>
</ng-container>
</select>