默认加载数据,能运行,但是出现报错
来源:8-3 开发工具更新、bundle.js 以及 Xcode 环境须知

寒武纪lcm
2016-10-19
之前数据默认是空白的,但是下拉刷新后就显示数据了。如何让数据默认就显示出来呢?
后来想个办法就是让它默认刷新,
在控制器里面加了这句话
this.doRefresh(this.refresher) ;
数据就可以出来了,但是浏览器里面有报错!错误已经贴在下方!
import { Component } from '@angular/core';
import { LoadingController } from 'ionic-angular';
import { Http, Headers, RequestOptions } from '@angular/http';
import { Toast, ToastController, NavController, NavParams } from 'ionic-angular';
import { InAppBrowser} from 'ionic-native';
import { Platform } from 'ionic-angular';
@Component({
templateUrl: 'build/pages/toutiao/toutiao.html'
})
export class toutiaoPage {
public wenzhang;
public wen;
public index = 0;
public page = 0;
public refresher;
public arrtype = ["toutiao", "shehui", "guonei", "guoji", "yule", "tiyu", "junshi", "keji", "caijing", "shishang"];
constructor(public navCtrl: NavController, public params: NavParams, private http: Http, public loadingCtrl: LoadingController, public toastCtrl: ToastController, public platform: Platform) {
this.doRefresh(this.refresher) ;
}
//链接在内置浏览器打开
openBrowser(url) {
this.platform.ready().then(() => {
open(url, "_blank", "location=no");
});
}
qingqiu(type) {
//默认加载
let loading = this.loadingCtrl.create({
spinner: 'circles',
showBackdrop: false
});
if (this.index == 0) {
loading.present();
}
//请求数据
this.http.get('http://v.juhe.cn/toutiao/index?type=' + type + '&key=321bc43e79c9be1464bdd46a3e5924df').subscribe(
//请求成功
data => {
console.log(data.json().error_code);
if (data.json().error_code == 0) {
this.wenzhang = this.wenzhang.concat(data.json().result.data);
console.log(this.wenzhang);
if (this.index == 0) {
setTimeout(() => {
loading.dismiss();
}, 0);
}
this.index += 1;
//console.log(this.wenzhang);
}
},
//请求失败
err => {
let toast = this.toastCtrl.create({
message: '无法获取网络信息!',
duration: 3000,
position: 'middle'
});
toast.present();
console.log('抱歉,请求失败');
}
)
}
//下拉刷新数据信息
doRefresh(refresher) {
setTimeout(() => {
this.wenzhang = [];
this.qingqiu('toutiao');
refresher.complete();
}, 1000);
}
//上滑加载数据信息
doInfinite(infiniteScroll) {
this.page++;
//console.log(this.arrtype[this.page]);
this.qingqiu(this.arrtype[this.page]);
setTimeout(() => {
infiniteScroll.complete();
}, 3000);
}
}
出现以下报错
EXCEPTION: TypeError: Cannot read property 'complete' of undefined
browser_adapter.js:84 EXCEPTION: TypeError: Cannot read property 'complete' of undefinedBrowserDomAdapter.logError @ browser_adapter.js:84BrowserDomAdapter.logGroup @ browser_adapter.js:94ExceptionHandler.call @ exception_handler.js:65(anonymous function) @ application_ref.js:337schedulerFn @ async.js:139SafeSubscriber.__tryOrUnsub @ Subscriber.js:225SafeSubscriber.next @ Subscriber.js:174Subscriber._next @ Subscriber.js:124Subscriber.next @ Subscriber.js:88Subject._finalNext @ Subject.js:128Subject._next @ Subject.js:120Subject.next @ Subject.js:77EventEmitter.emit @ async.js:127onError @ ng_zone.js:124onHandleError @ ng_zone_impl.js:74ZoneDelegate.handleError @ zone.js:327Zone.runTask @ zone.js:259ZoneTask.invoke @ zone.js:423
browser_adapter.js:84 STACKTRACE:BrowserDomAdapter.logError @ browser_adapter.js:84ExceptionHandler.call @ exception_handler.js:67(anonymous function) @ application_ref.js:337schedulerFn @ async.js:139SafeSubscriber.__tryOrUnsub @ Subscriber.js:225SafeSubscriber.next @ Subscriber.js:174Subscriber._next @ Subscriber.js:124Subscriber.next @ Subscriber.js:88Subject._finalNext @ Subject.js:128Subject._next @ Subject.js:120Subject.next @ Subject.js:77EventEmitter.emit @ async.js:127onError @ ng_zone.js:124onHandleError @ ng_zone_impl.js:74ZoneDelegate.handleError @ zone.js:327Zone.runTask @ zone.js:259ZoneTask.invoke @ zone.js:423
browser_adapter.js:84 TypeError: Cannot read property 'complete' of undefined
at toutiao.ts:85
at ZoneDelegate.invokeTask (zone.js:356)
at Object.onInvokeTask (ng_zone_impl.js:44)
at ZoneDelegate.invokeTask (zone.js:355)
at Zone.runTask (zone.js:256)
at ZoneTask.invoke (zone.js:423)BrowserDomAdapter.logError @ browser_adapter.js:84ExceptionHandler.call @ exception_handler.js:68(anonymous function) @ application_ref.js:337schedulerFn @ async.js:139SafeSubscriber.__tryOrUnsub @ Subscriber.js:225SafeSubscriber.next @ Subscriber.js:174Subscriber._next @ Subscriber.js:124Subscriber.next @ Subscriber.js:88Subject._finalNext @ Subject.js:128Subject._next @ Subject.js:120Subject.next @ Subject.js:77EventEmitter.emit @ async.js:127onError @ ng_zone.js:124onHandleError @ ng_zone_impl.js:74ZoneDelegate.handleError @ zone.js:327Zone.runTask @ zone.js:259ZoneTask.invoke @ zone.js:423
toutiao.ts:85 Uncaught TypeError: Cannot read property 'complete' of undefined(anonymous function) @ toutiao.ts:85ZoneDelegate.invokeTask @ zone.js:356onInvokeTask @ ng_zone_impl.js:44ZoneDelegate.invokeTask @ zone.js:355Zone.runTask @ zone.js:256ZoneTask.invoke @ zone.js:423
toutiao.ts:50 0
1回答
-
Parry
2016-10-19
请问你的 this.refresher 定义以及赋值在哪里?
042016-10-24
相似问题
回答 5
回答 3