使用路由器 links 注入模板组件时出现 Angular2 router-link 问题

Angular2 router-link issue when injecting a template component with router links

Angular2 路由器-link 使用路由器 links

注入模板组件时出现问题

我有一个 app.ts 文件,我想将我的导航组件依赖注入到我的 app.ts 文件中。

我制作了一个具有模板但没有功能的导航组件。 该模板将 fine 注入 app.ts。但是,当我将 route-links 添加到模板时,仅使用 router-links 时总是会出现控制台错误。

这是我的导航组件ts文件:

 import {Component, View, CORE_DIRECTIVES, FORM_DIRECTIVES} from 'angular2/angular2';

 @Component({
   selector: 'HeaderNavigation'
 })

 @View({
   templateUrl: '/src/app/components/header/header.html'
 })

 export class HeaderNavigation{

 }

这是我的导航组件html文件:

 <header>
     <nav class="navbar navbar-default">
        <ul class="nav navbar-nav navbar-right">
           <li class="active"><a [router-link]="['./Login']">Log In</a></li>
         </ul>
     </nav>   

     <router-outlet></router-outlet>       
 </header>

这是我的app.ts文件:这个文件注入了上面的导航组件:

 import {Component, View, bootstrap, bind, provide} from 'angular2/angular2';
 import {Router, ROUTER_BINDINGS, RouterOutlet, RouteConfig, RouterLink, ROUTER_PROVIDERS, APP_BASE_HREF} from 'angular2/router';
 import {Injectable} from 'angular2/angular2';
 import {HTTP_PROVIDERS, Http, Headers} from 'angular2/http';

 import {Login} from './components/login/login';
 import {HeaderNavigation} from './components/header/header';

 @Component({
     selector: 'app'
 })

 @View({
     template: `
         <HeaderNavigation></HeaderNavigation>

         <div class="content">
             <router-outlet></router-outlet>    
         </div>
     `,
     directives: [RouterOutlet, RouterLink]
 })

 @RouteConfig([
     { path: '/', redirectTo: '/login' },
     { path: '/login', component: Login, as: 'Login' }
 ])

 @Injectable()

 export class AppComponent {
     constructor(){}
 }

 bootstrap(AppComponent, [ROUTER_PROVIDERS, provide(APP_BASE_HREF, {useValue: '/'}), HTTP_PROVIDERS]);

这是我从控制台收到的错误消息:

我解决了我自己的问题! 在导航 html 组件中丢失,然后我将 router-link 名称错误并将其从 "login" 更改为 "Login" 以在 [=] 中的路由器配置中匹配它16=] 文件.

我已经为任何需要它的人在上面的代码中做了这些更改。

对于那些使用 angular 2 rc4 的人,这是我正在使用的: header.component.ts

import { Component }    from '@angular/core';
import { ROUTER_DIRECTIVES }    from '@angular/router';
@Component({
   moduleId: module.id,
   selector: 'ui-header',
   templateUrl: 'header.component.html',
   styleUrls: ['header.component.css'],
   directives: [ROUTER_DIRECTIVES],
})

export class HeaderComponent{
}

要在其他组件中添加页眉:other.component.ts

import { Component }            from '@angular/core';
import { Router }               from '@angular/router';
import { ROUTER_DIRECTIVES }    from '@angular/router';
import { HeaderComponent }      from'../shared/header/header.component';

@Component({
    selector: 'ui-other',
    template: `
    <ui-header></ui-header>
    <div class = "container">
        <router-outlet></router-outlet>
    </div>
   `,
   directives: [ROUTER_DIRECTIVES, HeaderComponent]
})

export class OtherComponent {
}