如何在Angular 2中从内部零部件中布线
How to route from within an inner component in Angular 2?
所以我对Angular 2还很陌生,我决定在我的一个项目中使用它来熟悉它。所以我的场景是:我正在尝试制作一个单页仪表板应用程序,目前我有三个组件:App
、Sidebar
和Navbar
,以及我的MainPage
(我的网站的主页面仪表板区域)。本质上,我需要从导航栏和侧边栏中使用[routerLink]="['destination']"
,并且需要更改应用程序组件上的<router-outlet>
。我觉得我明显错过了一些东西。我该怎么做?我的文件当前如下:
应用程序组件.ts
import {Component} from 'angular2/core';
import {RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS } from 'angular2/router';
import {NavbarComponent} from './navbar.component.ts'
import {SidebarComponent} from './sidebar.component.ts'
import {MainPageComponent} from './mainpage.component.ts'
@Component({
selector: 'application',
template: `
<navbar></navbar>
<sidebar id="sidebar-wrapper"></sidebar>
<!-- I need to do this, but in the sidebar and navbar components -->
<a [routerLink]="['Home']">Home</a>
<button (click)="goBack()">Back</button>
<router-outlet></router-outlet>
`,
styleUrls: ['css/navigation.css'],
directives: [ROUTER_DIRECTIVES, NavbarComponent, SidebarComponent, MainPageComponent],
providers: [ROUTER_PROVIDERS]
})
@RouteConfig([
{
path: '/home',
name: 'Home',
component: MainPageComponent
}
])
export class AppComponent {
goBack() {
window.history.back();
}
}
导航栏组件.ts
import {Component} from 'angular2/core';
import {RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS } from 'angular2/router';
@Component({
selector: 'navbar',
template: `
<nav class="navbar navbar-default">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#mainNav" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<!-- Here's an example of what I mean. This doesn't actually do anything -->
<a class="navbar-brand navbar-center" [routerLink]="['Home']"><img src="img/logo.svg"/></a>
</div>
<div class="collapse navbar-collapse" id="mainNav">
<ul class="nav navbar-nav navbar-left">
<li><a href="#"><i class="fa fa-user"></i>This is you!</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="#"><i class="fa fa-calendar"></i></a></li>
<li><a href="#"><i class="fa fa-exclamation-circle"></i></a></li>
<li><a href="#"><i class="fa fa-cog"></i></a></li>
</ul>
</div>
</nav>
`,
styleUrls: ['css/navigation.css'],
directives: [ROUTER_DIRECTIVES],
providers: [ROUTER_PROVIDERS]
})
export class NavbarComponent { }
`
不要将providers: [ROUTER_PROVIDERS]
添加到组件中。ROUTE_PROVIDERS
只能添加到bootstrap(...)
如果将ROUTER_PROVIDERS
添加到providers: [...] of a component, new instances are maintained for this component and it's descendants, this breaks the connection to the global router (
ROUTER_PROVIDERS added to
引导程序(AppComponent,[ROUTER_PROVIDERS])). The router is built in a way that it only works when provided globally only, therefor just add to
引导程序()`,但不添加其他内容。
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 调用函数内部的函数
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- 在phonegap应用程序内部重定向不起作用
- 使用此选项选择父类内部的类
- 访问JSON对象内部的数组元素
- 从模块内部访问Express装载路径
- AngularJs指令,该指令创建内部有数据对象的新指令
- 在Angular 2中布线期间保持零部件处于活动状态
- 如何使用内部对象构造对象
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- 用Javascript修改内部标记的CSS规则
- javascript函数内部的代码用逗号而不是分号分隔
- 正在$rootScope上达到控制器作用域$在内部控制器上
- 光线投射从内部投射时不会碰到网格
- javascript无法重新定义函数内部的全局对象
- 在不移动内部文本的情况下缩放元素的效果
- JavaScript goto 标签如何使用内部循环
- 如何在Angular 2中从内部零部件中布线
- 在面板内创建内部零部件