加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

重定向到Angular 2 Routing中的新页面

发布时间:2020-12-17 08:46:49 所属栏目:安全 来源:网络整理
导读:我有一个场景说一个主页(与main.html的app.component.ts),它被默认路由 app.component.ts @RouteConfig([ {path: '/',name : 'Home',component : HomeComponent,useAsDefault: true },{path: '/user',name : 'User',component : UserComponent },{path: '/ab
我有一个场景说一个主页(与main.html的app.component.ts),它被默认路由

app.component.ts

@RouteConfig([
    {path: '/',name : 'Home',component : HomeComponent,useAsDefault: true },{path: '/user',name : 'User',component : UserComponent },{path: '/about',name : 'About',component : AboutComponent},{path : 'contact',name : 'Contact',component : ContactComponent}
])

main.html中

<a [routerLink]="['/Home']">Home</a>
<a [routerLink]="['/User']">User Login</a>
<a [routerLink]="['/About']">About</a>
<a [routerLink]="['/Contact']">Contact</a>

<router-outlet></router-outlet>

现在让我们说想要使用路由器插座路由的2个组件,但是对于用户,我想要路由到整个新页面,而不是路由器插座.我尝试导航和导航,因为它不起作用,它仍然在< router-outlet>中加载它. .请不要建议window.href

我曾尝试在angular2 / router中使用Redirect类,但无法做到需要.

更新:此答案中的整个路由器配置代码适用于大约6/2016中弃用和删除的路由器

我想你想要的是儿童路线 – 见Plunker

已更新Plunker,导航已移至Page1

父路由允许在Page1和Page2之间切换,Page1允许在About和Contact之间切换,Page2只有User.

Page2也可以直接作为UserComponent,只有当这个页面应该支持多个组件时,才有必要使它成为具有子路由的组件.

您当然可以在用户之间导航,例如关于

router.navigate(['/Page1','About']);
router.navigate(['/Page2','User']);
import {Component,Directive,Output,EventEmitter} from 'angular2/core'
import {ROUTER_DIRECTIVES,RouteConfig} from 'angular2/router';

@Component({
  selector: 'contact',directives: [],template: `
  <h2>contact</h2>
`
})
export class ContactComponent {
}
@Component({
  selector: 'about',template: `
  <h2>about</h2>
`
})
export class AboutComponent {
}
@Component({
  selector: 'user',template: `
  <h2>user</h2>
`
})
export class UserComponent {
}
@Component({
  selector: 'page1',directives: [ROUTER_DIRECTIVES],template: `
  <h2>page1</h2>
  <router-outlet></router-outlet>
`
})
@RouteConfig([
    {path: '/about',component : AboutComponent,useAsDefault: true},{path : '/contact',component : ContactComponent}
])
export class Page1 {
}

@Component({
  selector: 'page2',template: `
  <h2>page2</h2>
  <router-outlet></router-outlet>
`
})
@RouteConfig([
    {path: '/user',component : UserComponent,])
export class Page2 {
}
@Component({
  selector: 'my-app',template: `
  <h2>Hello {{name}}</h2>
  <a href="#" [routerLink]="['/Page1','About']">About</a>
  <a href="#" [routerLink]="['/Page1','Contact']">Contact</a>
  <a href="#" [routerLink]="['/Page2','User']">User</a>
  <router-outlet></router-outlet>
`
})
@RouteConfig([
    {path: '/page1/...',name : 'Page1',component : Page1,{path: '/page2/...',name : 'Page2',component : Page2 },])
export class App {
  constructor() {
    this.name = 'Angular2';
  }  
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读