无法读取未定义的属性“标题”

时间:2019-02-18 07:09:52

标签: typescript ionic4

我有一个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);
      })
    })
  }

}

0 个答案:

没有答案