单击离子项目后无法显示提要数据 - Ionic 2
Unable to show feed data after clicking ion-item - Ionic 2
当我在主页中单击列表的 ion-item
时,我没有在新页面 (DetailPage) 中获取提要数据。我不知道我遗漏了什么,你能帮我吗?
堆栈:
Runtime Error
Error in ./DetailPage class DetailPage - caused by: Cannot read property 'title' of undefined
这是我的 home.html
- home.ts
<ion-header>
<ion-navbar color="primary">
<ion-title text-center>
App Name
</ion-title>
</ion-navbar>
</ion-header>
<ion-content padding>
<ion-list>
<ion-list inset>
<ion-item *ngFor="let entry of entries" (click)="openPage(entry)">{{entry.title}}</ion-item>
</ion-list>
</ion-list>
</ion-content>
|--------------------------------------------------------|
import { NavController } from 'ionic-angular';
import { Component } from '@angular/core';
import { RssService } from '../../providers/rss-service/rss-service';
import { DetailPage } from '../detail-page/detail-page';
@Component({
selector: 'page-home',
templateUrl: 'home.html',
providers: [RssService]
})
export class HomePage {
public entries: any = [];
constructor(public rssService:RssService, public nav:NavController) {
}
ionViewDidLoad(){
this.rssService.load().subscribe(
data => {
this.entries.push(data);
}
);
}
openPage(entry) {
console.log('open page called with ' + entry.title);
this.nav.push(DetailPage, {selectedEntry:entry});
}
}
detail-page.html
- detail-page.ts
<ion-header>
<ion-navbar color="primary">
<ion-title>{{entry.title}}</ion-title>
</ion-navbar>
</ion-header>
<ion-content padding>
<!--<div [innerHTML]="entry.description"></div>-->
</ion-content>
|--------------------------------------------------|
import {NavController, NavParams} from 'ionic-angular';
import { Component } from '@angular/core';
@Component({
templateUrl: 'detail-page.html'
})
export class DetailPage {
constructor(public nav: NavController, navParams:NavParams) {
console.log('run');
this.nav = nav;
var entry = navParams.get('selectedEntry');
console.log('my entry is '+ entry.title);
}
}
我认为这是因为 entry 不在 class 范围内。它仅在构造函数中起作用。您可以为 DetailPage 尝试使用此代码吗?
import {NavController, NavParams} from 'ionic-angular';
import { Component } from '@angular/core';
@Component({
templateUrl: 'detail-page.html'
})
export class DetailPage {
entry:any = {};
constructor(public nav: NavController, navParams:NavParams) {
console.log('run');
this.nav = nav;
this.entry = navParams.get('selectedEntry');
console.log('my entry is '+ this.entry.title);
}
}
当我在主页中单击列表的 ion-item
时,我没有在新页面 (DetailPage) 中获取提要数据。我不知道我遗漏了什么,你能帮我吗?
堆栈:
Runtime Error
Error in ./DetailPage class DetailPage - caused by: Cannot read property 'title' of undefined
这是我的 home.html
- home.ts
<ion-header>
<ion-navbar color="primary">
<ion-title text-center>
App Name
</ion-title>
</ion-navbar>
</ion-header>
<ion-content padding>
<ion-list>
<ion-list inset>
<ion-item *ngFor="let entry of entries" (click)="openPage(entry)">{{entry.title}}</ion-item>
</ion-list>
</ion-list>
</ion-content>
|--------------------------------------------------------|
import { NavController } from 'ionic-angular';
import { Component } from '@angular/core';
import { RssService } from '../../providers/rss-service/rss-service';
import { DetailPage } from '../detail-page/detail-page';
@Component({
selector: 'page-home',
templateUrl: 'home.html',
providers: [RssService]
})
export class HomePage {
public entries: any = [];
constructor(public rssService:RssService, public nav:NavController) {
}
ionViewDidLoad(){
this.rssService.load().subscribe(
data => {
this.entries.push(data);
}
);
}
openPage(entry) {
console.log('open page called with ' + entry.title);
this.nav.push(DetailPage, {selectedEntry:entry});
}
}
detail-page.html
- detail-page.ts
<ion-header>
<ion-navbar color="primary">
<ion-title>{{entry.title}}</ion-title>
</ion-navbar>
</ion-header>
<ion-content padding>
<!--<div [innerHTML]="entry.description"></div>-->
</ion-content>
|--------------------------------------------------|
import {NavController, NavParams} from 'ionic-angular';
import { Component } from '@angular/core';
@Component({
templateUrl: 'detail-page.html'
})
export class DetailPage {
constructor(public nav: NavController, navParams:NavParams) {
console.log('run');
this.nav = nav;
var entry = navParams.get('selectedEntry');
console.log('my entry is '+ entry.title);
}
}
我认为这是因为 entry 不在 class 范围内。它仅在构造函数中起作用。您可以为 DetailPage 尝试使用此代码吗?
import {NavController, NavParams} from 'ionic-angular';
import { Component } from '@angular/core';
@Component({
templateUrl: 'detail-page.html'
})
export class DetailPage {
entry:any = {};
constructor(public nav: NavController, navParams:NavParams) {
console.log('run');
this.nav = nav;
this.entry = navParams.get('selectedEntry');
console.log('my entry is '+ this.entry.title);
}
}