2017-01-13 3 views
3

Я пытаюсь создать гибридное приложение ionic-2 с использованием углового 2. В этом я реализовал интерфейс ErrorHandler, но при возникновении ошибки ничего не произойдет. Я не знаю, если это правильный путь для реализации обработчика ошибок Это мое первое приложение в ионном 2.Обработка исключений 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 {} 

мой appcomponent

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'); 
    } 
} 

Спасибо,

ответ

3
  1. Вам необходимо переопределить функцию handleError в вашем обычном классе.

    handleError(err: any): void { super.handleError(err);//call parent handleError // do something with the error }

  2. Также вы установите IonicErrorHandler в качестве provider.Check 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 
} 
} 
+0

я получаю эту ошибку «Ошибка выполнения не может разрешить все параметры для MyErrorHandler: (?).» –

+0

Вы импортировали IonicErrorHandler? –

+0

также может быть вызван в jquery mouseicycle wint в обработчике ошибок .. это не компонент –

Смежные вопросы