- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试使用 angular 2 创建一个 ionic-2 混合应用程序。我已经实现了 ErrorHandler
接口(interface),但是当发生错误时,什么也不会发生。我不知道这是否是实现错误处理程序的正确方法这是我在 ionic 2 中的第一个应用程序。
这是我的应用模块代码
import { NgModule, ErrorHandler} from '@angular/core';
import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
import { MyApp } from './app.component';
import { Page1 } from '../pages/page1/page1';
import { Page2 } from '../pages/page2/page2';
import { homePage } from '../pages/home/homePage';
import { MyPage } from '../pages/my-page/my-page';
import { FormsPage } from '../pages/forms/forms';
import { SharedData } from '../providers/shared-data';
import {MyExceptionHandler} from '../validators/myhandler';
@NgModule({
declarations: [
MyApp,
Page1,
Page2,
homePage,
MyPage,
FormsPage
],
imports: [
IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
Page1,
Page2,
homePage,
MyPage,
FormsPage
],
providers: [{provide: ErrorHandler, useClass: IonicErrorHandler},SharedData]
})
export class AppModule {}
我的应用组件
import { NgModule,Component, ViewChild,ErrorHandler} from '@angular/core';
//import {provide} from '@angular2/core';
import { Nav, Platform, } from 'ionic-angular';
import { StatusBar, Splashscreen } from 'ionic-native';
import { Page1 } from '../pages/page1/page1';
import { Page2 } from '../pages/page2/page2';
import{homePage} from '../pages/home/homePage';
import { FormsPage } from '../pages/forms/forms';
import {MyExceptionHandler} from '../validators/myhandler';
@NgModule({
providers: [{provide: ErrorHandler, useClass: MyExceptionHandler}]
})
@Component({
templateUrl: 'app.html'
})
export class MyApp {
@ViewChild(Nav) nav: Nav;
rootPage: any = homePage;
pages: Array<{title: string, component: any}>;
constructor(public platform: Platform) {
this.initializeApp();
// used for an example of ngFor and navigation
this.pages = [
{ title: 'gotohomepage', component: homePage },
{ title: 'gotopage1', component: Page1 },
{ title: 'gotopage2', component: Page2 },
{ title: 'forms', component: FormsPage }
];
}
initializeApp() {
this.platform.ready().then(() => {
// Okay, so the platform is ready and our plugins are available.
// Here you can do any higher level native things you might need.
StatusBar.styleDefault();
Splashscreen.hide();
});
}
openPage(page) {
// Reset the content nav to have just this page
// we wouldn't want the back button to show in this scenario
this.nav.setRoot(page.component);
}
}
和我的处理程序页面
import { Component,ViewChild,ErrorHandler } from '@angular/core';
export class MyErrorHandler extends IonicErrorHandler {
handleError(err: any): void {
super.handleError(err);//call parent handleError
}
ionViewDidLoad() {
alert('ionViewDidLoad FormsPage');
}
}
谢谢,
最佳答案
您需要覆盖自定义类中的handleError
函数。
handleError(err: any): void {
super.handleError(err);//调用父 handleError
//处理错误
}
您还将 IonicErrorHandler
设置为您的提供者。检查 here和 this is the github link
您可以将提供程序数组设置为:
providers: [{provide: ErrorHandler, useClass: MyExceptionHandler },SharedData]
或者我建议改为尝试扩展 IonicErrorHandler
。
import { Component,ViewChild,ErrorHandler } from '@angular/core';
export class MyExceptionHandler extends IonicErrorHandler implements ErrorHandler{
handleError(err: any): void {
super.handleError(err);//call parent handleError
// do something with the error
}
}
关于angular - Ionic 2 异常处理不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41628389/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!