我有一个Ionic应用程序,该应用程序连接到Web服务,该服务将RSS转换为JSON,然后显示新闻。
一切正常,希望我在控制台中遇到一个烦人的错误:ERROR TypeError: Cannot read property 'title' of undefined UutinenPage.html:13
这是我的Stackblitz:https://stackblitz.com/github/avaliaho/io-tech-uutiset/
作为旁注:如果有人可以为我修复Stackblitz错误,并提及更改之处,我将不胜感激:
Error in /turbo_modules/@angular/compiler@7.2.5/bundles/compiler.umd.js (2496:21)
Can't resolve all parameters for ApplicationModule: (?).
编辑:
uutinen.page.html:
<ion-header>
<ion-toolbar>
<ion-title>io-tech uutiset</ion-title>
<ion-buttons slot="start">
<ion-button (click)="meneTakaisin()">
<ion-icon slot="start" name="arrow-back"></ion-icon>
</ion-button>
</ion-buttons>
</ion-toolbar>
</ion-header>
<ion-content padding>
<h1>{{ uutinen.title }}</h1>
<p>{{ uutinen.pubDate }} {{ kirjoittaja[1] }}</p>
<img [src]="kuva">
<p [innerHTML]="sisaltoIlmanLinkkeja"></p>
</ion-content>
uutinen.page.ts:
import { Component, OnInit } from '@angular/core';
import { UutisetService } from '../uutiset.service';
import { uutinen } from '../uutinen.interface';
import { uutissyote } from '../uutissyote.interface';
import { ActivatedRoute, Router } from '@angular/router';
@Component({
selector: 'app-uutinen',
templateUrl: './uutinen.page.html',
styleUrls: ['./uutinen.page.scss'],
})
export class UutinenPage implements OnInit {
uutinen: uutissyote;
id: number;
kuva: string[] = [];
sisalto: string[] = [];
sisaltoIlmanLinkkeja: string;
kirjoittaja: string[] = [];
constructor(
private service: UutisetService,
private reitti: ActivatedRoute,
private reititin: Router) { }
ngOnInit() {
this.id = +this.reitti.snapshot.paramMap.get('id');
this.service.haeKaikki().then((data: uutinen) => {
this.uutinen = data.items[this.id];
this.kirjoittaja = data.items[this.id].author.split(" ");
this.kuva = data.items[this.id].thumbnail.split('"');
this.sisalto = data.items[this.id].content.split("<br><br><br>");
this.sisaltoIlmanLinkkeja = this.sisalto[1].replace(/<a\b[^>]*>(.*?)<\/a>/i,"")
})
}
meneTakaisin = () => {
this.reititin.navigateByUrl("/home");
}
}
uutinen.service.ts:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class UutisetService {
urli = "https://api.rss2json.com/v1/api.json?rss_url=https%3A%2F%2Fbbs.io-tech.fi%2Fforums%2Fio-tech-fi-uutiset.67%2Findex.rss";
constructor(private http: HttpClient) { }
haeKaikki = () => {
return new Promise((resolve, reject) => {
this.http.get(this.urli).subscribe((data) => {
resolve(data);
}, (error) => {
reject(error);
})
})
}
}