İstisnai bir durum oluşursa (yalnızca denemek) kullanıcıyı özel bir hata sayfasına götürmesi gereken özel bir özel durum işleyicim var.Açısal 2 Özel Hata Giderme ve Yönlendirici
Enjektör kullanarak yönlendiricinin örneğini almaya çalışıyorum. Bunu yapmanın nedeni, enjektörün mevcut yönlendirici örneğini vereceğine ve onu kullanacağına inanıyorum.
Bunun neden çalışmadığı veya bunun nasıl gerçekleştirilebileceği hakkında herhangi bir fikrin var mı?
Sen@Injectable()
export class AppExceptionHandler extends ExceptionHandler{
constructor(){
super(null, null);
}
call(exception:any, stackTrace?:any, reason?:string):void {
console.log('call...')
var providers = Injector.resolve([ROUTER_PROVIDERS]);
var injector = Injector.fromResolvedProviders(providers);
// this is causing issue, not sure it is the correct way
let router : Router = injector.get(Router);
// not executed
console.log(router)
// not executed
console.log('done...')
router.navigate(["CustomErrorPage"]);
}
}
Cevap :) Teşekkür - 2.0.0-beta.17 test Teşekkür Druxtan
1. Created a file app.injector.ts inside the app folder (app/app.injector.ts)
let appInjectorRef;
export const appInjector = (injector?) => {
if (!injector) {
return appInjectorRef;
}
appInjectorRef = injector;
return appInjectorRef;
};
2. Added to the bootstrap in the main.tsiçin
3. In the AppExceptionHandler, retrieved the Router instance as shown below
export class AppExceptionHandler {
call(exception:any, stackTrace?:any, reason?:string):void {
let injectorApp = appInjector();
let router = injectorApp.get(Router);
let localStorageService = injectorApp.get(LocalStorageService);
if(exception.message === '-1'){
localStorageService.clear();
router.navigate(["Login"]);
}
}
}
buldun Bu soruna bir çözüm? – Scipion
Merhaba, soruyu cevapla güncelledik. :) – ssujan728