component.html
<select data-placeholder="All Categories" class="category" value="category.category.categoryName">
<option selected="selected" style="display:none">Select Category</option>
<option class="select" *ngFor="let category of categories" value="category">
{category.categoryName}}
</option>
</select>
<select data-placeholder="All Cities" class="services location" value="category.categoryName">
<option selected="selected" style="display:none">select type of services</option>
<option *ngFor="let category of selected.categoryServicemodel; let i =
index" value="category">{{category.serviceName}}
</option>
</select>
component.ts
export class Component {
categories: any[];
services: any[];
cities: any[];
selected: any = {};
constructor() {
getAllCategories();
{
this.postService.getAllCategories()
.subscribe(data => {
this.categories = data.json();
console.log(this.categories);
});
}
getAllService();
{
this.postService.getAllServices()
.subscribe(res => {
this.services = res.json();
});
}
}
}
回复
[
{
"categoryId": 1,
"categoryName": "Painting",
"categoryDesc": "Painting of all types",
"categoryServicemodel": [
{
"serviceId": 1,
"serviceName": "Test12",
"serviceDesc": "test12",
"isActive": 1
},
{
"serviceId": 3,
"serviceName": "TESTINGEXAMPLE ",
"serviceDesc": "TESTINGEXAMPLE Details
Information
",
"isActive": 1
},
{
"serviceId": 12,
"serviceName": "New Painters",
"serviceDesc": "office paintings ",
"isActive": 2
},
{
"serviceId": 11,
"serviceName": "ABC Painters",
"serviceDesc": "painting of all types",
"isActive": 1
}
],
"active": 1
},
{
"categoryId": 2,
"categoryName": "string",
"categoryDesc": "string",
"categoryServicemodel": [
{
"serviceId": 2,
"serviceName": "Test15",
"serviceDesc": "test15",
"isActive": 1
}
],
"active": 0
},
{
"categoryId": 4,
"categoryName": "carpenter",
"categoryDesc": "Carpenter",
"categoryServicemodel": [
{
"serviceId": 5,
"serviceName": "Test Carpenter ",
"serviceDesc": "Test carpenter Description",
"isActive": 1
}
],
"active": 0
}
]
我的问题是,当我为ex选择第一个类别名称时。绘画(在我的答复中)应在第二个下拉菜单中更改该类别下的所有服务名称 再一次,如果我选择第二类别,则该类别下的所有服务名称应在第二下拉列表中可用
答案 0 :(得分:1)
我对您的代码做了一些小的更改。
示例代码:https://stackblitz.com/edit/service-category
component.html
<select data-placeholder="All Categories" class="category" value="category.categoryName" [(ngModel)]="selected" (change)="buildServices($event)">
<option selected="selected" style="display:none">Select Category</option>
<option class="select" *ngFor="let category of categories" [value]="category.categoryId">
{{category.categoryName}}
</option>
</select>
<select data-placeholder="All Cities" class="services location" value="category.categoryName">
<option selected="selected" style="display:none">select type of services</option>
<option *ngFor="let service of services; let i =
index" value="service.serviceId">{{service.serviceName}}
</option>
</select>
component.ts
public buildServices() {
this.services = [];
this.categories.forEach((category) => {
if (category.categoryId == this.selected) {
this.services = category.categoryServicemodel;
}
});
}