在角2 RC5路由器3.0.0 RC1我想從相同的組分(相同的文件或至少)內調用函數canDeactivate
路由器檢查含義:寫CanDeactivate功能
{ path: 'componentPath', component: MyComponent, canDeactivate: [CanDeactivateGuard] }
隨着CanDeactivateGuard
而無論是在同一個文件MyComponent
,或者甚至更好,CanDeactivateGuard
可能是MyComponent
和canDeactivate()
功能在裏面MyComponent
(但我不知道這是可能的)
我已經試過以下航線:
{ path: 'componentPath', component: MyComponent, canDeactivate: [MyComponent] }
而且在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;
}
}
但我發現了以下錯誤:
index:2 Error: Error: Can't resolve all parameters for MyComponent: (?, ?)
你找到了一個解決方案? –