Я работаю над angular 9, чтобы создать новостное приложение. Я использую RSS-канал Times of India https://timesofindia.indiatimes.com
Вот моя ссылка на стек https://stackblitz.com/github/mehulk05/Newsapp
У меня есть категории в моем домашнем компоненте, поэтому, когда я нажимаю на любую категорию, я получаю новости об этой категории в своем сервисе и пытаюсь отобразить их в NewsList Component. Но как-то, когда я меняю моя категория Я не могу отправить последние данные из службы в компонент NewsList. Хотя я получаю обновленные данные в консоли в NewsService, но не могу получить эти данные в newsListComponent
вот мой код
Home.component. html
<div class="container mt-5">
<div class="col-xs-12">
<div class="row mt-4">
<div class="col-xs-3 col-md-3 sidelink">
<div class="list-group">
<a *ngFor="let c of categories"
class="list-group-item list-group-item-action"
id="list-home-list" [routerLink]=""
role="tab" aria-controls="home"
( (click)='onClick(c.url)'>{{c.type}}</a>
</div>
</div>
<div class="col-md-9 col-xs-9">
<router-outlet></router-outlet>
</div>
</div>
</div>
</div>
Home.component.ts
export class HomeComponent implements OnInit {
categories=[
{type:"home",url:"https://timesofindia.indiatimes.com/rssfeedstopstories.cms?feedtype=sjson"},
{type:"recent",url:"https://timesofindia.indiatimes.com/rssfeeds/1221656.cms?feedtype=sjson"},
{type:"india",url:"https://timesofindia.indiatimes.com/rssfeeds/-2128936835.cms?feedtype=sjson"},
{type:"cricket",url:"https://timesofindia.indiatimes.com/rssfeeds/4719161.cms?feedtype=sjson"}]
constructor(private ns:NewsserviceService,
private router:Router) { }
ngOnInit(): void {
}
onClick(title){
console.log(title)
this.ns.getUrl(title)
this.router.navigate(["/news-list"])
}
}
NewsService.ts
export class NewsserviceService {
url:string='https://timesofindia.indiatimes.com/rssfeedstopstories.cms?feedtype=sjson'
constructor(private http:HttpClient) {
}
getUrl(url){
this.url=url
this.getNewsList();
}
getNewsList(){
this.url='https://cors-anywhere.herokuapp.com/'+this.url
console.log(this.url)
this.http.get(this.url ).subscribe(data=>{
console.log(data)
})
}
}
NewsList.component.ts
news:any
constructor(private ns:NewsserviceService,private cd:ChangeDetectorRef) { }
ngOnInit() {
this.news= this.ns.getNewsList();
console.log("news is" +this.news)
}
}
Когда я нажимаю на любую категорию, я впервые получаю данные в консоли из компонента Newslist, но после того, как я не получаю никаких данных из компонента newsList, но я получаю данные в консоли fr ом Ньюсервис