这是我得到的错误:
没有为组件指定模板PageNotFoundComponent错误:否 为组件PageNotFoundComponent指定的模板 在DirectiveNormalizer.normalizeDirective
如果路线不存在,则该模块/组件将用户重定向到主页并将其记录出去,例如**
这是我的组成部分:
import { Directive} from '@angular/core';
import { Router } from '@angular/router';
import { AuthService } from '../../services/authService/authService';
@Directive({
selector: 'PageNotFoundComponent'
})
export class PageNotFoundDirective {
constructor(_authService: AuthService, _router: Router){
_authService.isAuthenticated().then(() => {
_router.navigate(['/home']);
});
}
}
这是我的模块
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule } from '@angular/router';
import { PageNotFoundDirective } from './pageNotFound.directive';
import { AuthService } from '../../services/authService/authService';
@NgModule({
imports: [CommonModule, RouterModule],
declarations: [PageNotFoundDirective],
exports: [PageNotFoundDirective],
providers: [AuthService]
})
export class PageNotFoundModule { }
这是我的路线:
import { Route } from '@angular/router';
import { PageNotFoundDirective } from './index';
export const PageNotFoundRoutes: Route[] = [
{
path: '**',
component: PageNotFoundDirective
}
];
这是我得到的当前错误:
(index):95错误:(SystemJS)无法编译' PageNotFoundDirective' 因为它不是一个组件。错误:无法编译 ' PageNotFoundDirective'因为它不是一个组件。
答案 0 :(得分:18)
<强>更新强>
对于路线,您需要一个组件(此处不能使用指令)
@Component({
selector: 'PageNotFoundComponent',
template: ''
})
<强>原始强>
Angular2中没有没有模板的组件
更改
@Component({
到
@Directive({
你应该得到你想要的东西。
组件是带有视图的指令。
答案 1 :(得分:1)
或者,如果您仍然希望缺少模板的组件,则可以将其从模块的声明数组中删除,并将其用作指令