我在Angular2中发现了几个有关嵌套ngFor循环的问题,但不是我想要的。我想在列表中显示类别。我的JSON看起来像这样:
{
Categories: [{
"Title": "Categorie A",
"Children": [
{
"Title": "Sub Categorie A",
"Children": []
}
]
},{
"Title": "Categorie B",
"Children": [
{
"Title": "Sub Categorie B",
"Children": [{
"Title": "Sub Sub Categorie A",
"Children": []
}]
}
]
}]
}
Run Code Online (Sandbox Code Playgroud)
C#类如下所示:
public class Child
{
public string Title { get; set; }
public List<object> Children { get; set; }
}
public class Category
{
public string Title { get; set; }
public List<Child> Children { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在的诀窍是在ngFor循环中获得此效果,而对子级的深度没有任何限制。
我认为使用将自身呈现为子元素的组件将非常简单:
export interface Category {
Title: string;
Children: Category[];
}
@Component({
selector: 'my-category',
template: `
<h2>{{ category.Title }}</h2>
<ul *ngIf="category.Children.length > 0">
<li *ngFor="let child of category.Children">
<my-category [category]="child"></my-category>
</li>
</ul>
`
})
export class MyCategoryComponent {
@Input() category: Category;
}
Run Code Online (Sandbox Code Playgroud)