无法在组件内部使用[routerLink]

时间:2016-05-21 09:41:09

标签: javascript angularjs routes angular angular2-routing

我有2个<router-outlet>,一切正常,这是我在个人资料组件中的RouteConfig

@Component({
    selector : "profile",
    templateUrl: '/client/tmpl/profile.html',
    directives: [ ROUTER_DIRECTIVES],
})

@RouteConfig([
     {name: 'Home', component: homeProfile ,path: '/' ,useAsDefault:true},
     {name: 'Credit', component: credit ,path: '/credit' },
     {name: 'BuyCredit', component: buyCredit ,path: '/buycredit' }
])

我的问题是当我想在credit组件中使用[routerLink]时抛出一个错误: “credit”没有路由配置。在[null]

这是我的credit组件:

import {ROUTER_DIRECTIVES,RouteConfig} from 'angular2/router';
 @Component({
    selector : "credit",
    templateUrl : "client/tmpl/profile/credit.html",
    directives: [ROUTER_DIRECTIVES]

})

模板:

<ul>
                                 <li><a  [routerLink]="['Profile' , 'Home']"  href="#">home</a> </li>
</ul>

为什么我应该在credit组件中使用RouteConfig?以及如何使用?

1 个答案:

答案 0 :(得分:2)

试试这个

<a [routerLink]="['/Profile' , 'Home']"  href="#">home</a>

如我所见,您已在主要组件中定义了Profile路由,然后Profile具有子组件,即:Home

因此,发生异常是因为:

    routerLink中的
  • Profile表示在此组件的routeConfig中查找路由。

  • 但您需要在routerLink中执行/Profile告诉它在根目录中寻找Profile路由(主要组件)&#39; routeConfig