Angular路由

路由:

创建项目时要创建路由。

使用路由  

 * 1.在app-routing.module.ts中引入新建好的组件

 * 2. 配置组件  path:路径  component:组件

const routes: Routes = [

{path:'home',component:HomeComponent},

{path:'news',component:NewsComponent},

{path:'header',component:HeaderComponent},

{path:'newscontent/:aid'  ,component:NewscontentComponent},  ----当用过路由跳转时可以携带参数:aid

//当请求链接没有匹配到路由时,默认访问home组件

//{path:'**',redirectTo:'home'}

];


HTML:

动态路由传值

        

     {{key}}----{{item}}  --newscontent对应路由的path   key为参数

        

传值:

 /**

   * 通过url 传值,

   * html: queryParams]="{aid:key}">{{key}}----{{item}}

   * 在具体组件的业务代码(ts)通过引入ActivedRouter

  import {ActivatedRoute}from '@angular/router'

  在详情组件 构造器声明

 constructor(public route:ActivatedRoute) { }        

 /**获取url中的参数 */

   this.route.queryParams.subscribe((data)=>{

    console.log(data.aid);

    })   

   */

  /**

   * 通过动态路由传值

   * 在app-routing.modules.ts 配置组件的地方  {path:'newscontent/:aid' ,component:NewscontentComponent},

   * 

   * html: {{key}}----{{item}}

   * 

   */

 /**获取动态路由传的值 */

/*    this.route.params.subscribe((data)=>{

      console.log(data.aid);

      })*/


通常在开发过程中还有通过js跳转,获取跳转携带的参数不变,还是如上⬆:

import { Component, OnInit } from '@angular/core';

import {Router,NavigationExtras} from '@angular/router';  

@Component({

  selector: 'app-header',

  templateUrl: './header.component.html',

  styleUrls: ['./header.component.scss']

})

export class HeaderComponent implements OnInit {

  constructor(public router:Router) { }

  ngOnInit(): void {

  }

  /*通过js跳转路由*/ 

  //想通过js进行路由跳转,需要引入router模块

  /**

   * 在构造函数声明

   * 注意:携带参数时 跳转的前提时  目标路由 允许携带参数 在app-routing。modules.ts

   */

  public jumpByJS(){

    /**跳转 */

    this.router.navigate(['/newscontent/','1'])

  }

  public jump(){

    /**通过url传值跳转

     * 引入  NavigationExtras

     * 

     */

    let  queryParams:NavigationExtras={

      queryParams:{'aid':123}   

    };

    this.router.navigate(['/newscontent'],queryParams); 

  }

}

你可能感兴趣的:(Angular路由)