In Winkel 2 RC5 Router 3.0.0 RC1 würde Ich mag die canDeactivate
Funktion innerhalb derselben Komponente nennen (oder zumindest der gleichen Datei) der Router prüft Bedeutung:schreiben CanDeactivate Funktion in der gleichen Komponente
{ path: 'componentPath', component: MyComponent, canDeactivate: [CanDeactivateGuard] }
Mit CanDeactivateGuard
wird entweder in der gleichen Datei wie MyComponent
oder, noch besser, könnte CanDeactivateGuard
MyComponent
und die canDeactivate()
Funktion innerhalb MyComponent
sein (aber ich bin nicht sicher, ob es möglich ist)
ich habe die folgende Route versucht :
{ path: 'componentPath', component: MyComponent, canDeactivate: [MyComponent] }
Und in MyComponent
:
import {Component, OnInit} from '@angular/core';
import { CanDeactivate } from '@angular/router';
@Component({
selector: 'my-component',
providers: [],
templateUrl: 'MyComponent.html',
directives: []
})
export interface CanDeactivateComponent {
canDeactivate:() => boolean | Observable<boolean>;
}
export class MyComponent implements OnInit, CanDeactivate<CanDeactivateComponent> {
onInit(){
// MyComponent initialization
}
canDeactivate(component: CanDeactivateComponent): Observable<boolean> | boolean {
console.log('test');
return true;
}
}
Aber ich die folgende Fehlermeldung erhalten:
index:2 Error: Error: Can't resolve all parameters for MyComponent: (?, ?)
haben Sie eine Lösung dafür finden? –