如何从子组件定位路由器出口?
How can I target router-outlet from a child component?
我有一个左导航组件,它被导入到我的主 AppComponent 中。我要实现的是单击左侧导航栏中的 link 并让它在父 AppComponent 的路由器出口中加载 DataComponent 的能力。
我的父 AppComponent 如下所示:
import { LeftNavComponent } from 'app/left-nav/left-nav.component';
import { DataComponent } from 'app/data/data.component';
@Component({
selector: 'main',
template: '<left-nav></left-nav><router-outlet></router-outlet>',
directives: [ROUTER_DIRECTIVES, LeftNavComponent]
})
@RouteConfig([
{path:'/data', name: 'Data', component: DataComponent}
])
我的子 LeftNavComponent 看起来像这样:
@Component({
selector: 'left-nav',
directives: [ ROUTER_DIRECTIVES ],
providers: [ ROUTER_PROVIDERS ],
template: '<a [routerLink]="[ 'Data' ]">Show Me Data</a>'
})
我试图在路由器出口中加载的 DataComponent 如下所示:
@Component({
selector: 'data',
templateUrl: 'This is where the data will be'
})
当我单击 link 时,url 更改为 /data,但似乎没有实际加载 DataComponent,因为 'This is where the data will be' 文本没有出现。
我已验证 RouteConfig 是否正常工作,因为如果我将 router-link 放在 AppComponent 模板中就会出现文本,所以问题似乎是 router-link 在子组件中。
任何帮助都会很棒。
我想这就是你想要的:
template: '<a [routerLink]="[ '../Data' ]">Show Me Data</a>'
或者如果它是根组件上的路由:
template: '<a [routerLink]="[ '/Data' ]">Show Me Data</a>'
我有一个左导航组件,它被导入到我的主 AppComponent 中。我要实现的是单击左侧导航栏中的 link 并让它在父 AppComponent 的路由器出口中加载 DataComponent 的能力。
我的父 AppComponent 如下所示:
import { LeftNavComponent } from 'app/left-nav/left-nav.component';
import { DataComponent } from 'app/data/data.component';
@Component({
selector: 'main',
template: '<left-nav></left-nav><router-outlet></router-outlet>',
directives: [ROUTER_DIRECTIVES, LeftNavComponent]
})
@RouteConfig([
{path:'/data', name: 'Data', component: DataComponent}
])
我的子 LeftNavComponent 看起来像这样:
@Component({
selector: 'left-nav',
directives: [ ROUTER_DIRECTIVES ],
providers: [ ROUTER_PROVIDERS ],
template: '<a [routerLink]="[ 'Data' ]">Show Me Data</a>'
})
我试图在路由器出口中加载的 DataComponent 如下所示:
@Component({
selector: 'data',
templateUrl: 'This is where the data will be'
})
当我单击 link 时,url 更改为 /data,但似乎没有实际加载 DataComponent,因为 'This is where the data will be' 文本没有出现。
我已验证 RouteConfig 是否正常工作,因为如果我将 router-link 放在 AppComponent 模板中就会出现文本,所以问题似乎是 router-link 在子组件中。
任何帮助都会很棒。
我想这就是你想要的:
template: '<a [routerLink]="[ '../Data' ]">Show Me Data</a>'
或者如果它是根组件上的路由:
template: '<a [routerLink]="[ '/Data' ]">Show Me Data</a>'