Я работаю над проектом, который имеет в левой части экрана категории, и при нажатии на каждую категорию в середине экрана должны отображаться статьи / продукты, которые относятся к выбранной категории.
Я выделил категории слева очень просто, как это:
category: Category[];
ngOnInit() {
this.category= this._activatedRoute.snapshot.data['category'];
}
И в моем файле шаблона .html я только что отобразил их и прикрепил событие к каждому:
<div class="tab-content categories-tab-content">
<div class="tab-pane" id="food">
<ul>
<li *ngFor="let c of category;">
<button type="button" data-toggle="" data-target="" class="btn categories-btn" (click)="getArticlesByCategory(c.id)">
{{subgroup.title | uppercase}}
</button>
</li>
</ul>
</div>
</div>
Как видите, getArticlesByCategory
метод расположен там так: (click)="getArticlesByCategory(c.id)
Поэтому, когда пользователи нажимают на каждую категорию, этот метод называется:
getArticlesByCategory(selectedCategoryId: string) {
this._articleService.getArticlesByCategory(selectedCategoryId).subscribe(articles => {
this.category= category;
});
А статьи извлечены, я пробовал console.log
и они есть ..
Вот мой второй компонент, который должен отображать эти статьи:
import { Component, OnInit, Input } from '@angular/core';
import { Article } from '../../models/article';
@Component({
selector: 'app-main-article',
templateUrl: './article.component.html',
styleUrls: ['./article.component.css']
})
export class ArticleComponent implements OnInit {
// Here I've created `@Input` because I think it needs to receive this list of articles
@Input() category: Article[];
constructor() { }
ngOnInit() {
}
}
Это файл шаблона моего компонента, который должен получать и отображать статьи:
<div *ngFor="let product of products ;" class="article-holder">
<div id="article1" class="article">
<p class="article-price">product.price</p>
<p class="article-title">product.title</p>
</div>
</div>
Как вы видите в моем шаблоне файла, код готов к зацикливанию этого списка, но я не знаю, как его получить, может кто-нибудь объяснить мне, как это сделать?
Спасибо
Приветствия