zoukankan      html  css  js  c++  java
  • angular 路由使用

    1. 创建路由模块
    ng generate module app-routing --flat --module=app
    
    1. 修改app-routing.module.ts
    import { NgModule } from '@angular/core';
    import { CommonModule } from '@angular/common';
    // 引入路由模块
    import { Routes, RouterModule } from '@angular/router';
    // 引入被路由的组件
    import {HomePageComponent} from './scence-station/home-page/home-page.component';
    // 定义路由
    const routes: Routes = [
      // 无路由时默认跳转路由
      { path: '', redirectTo: '/homePage', pathMatch: 'full' },
      { path: 'homePage', component: HomePageComponent },
      // 无匹配路由时默认路由
      { path: '**', component: HomePageComponent }
    ];
    
    @NgModule({
      declarations: [],
      imports: [
        CommonModule,
        // 初始化路由模块,监听定义的路由
        RouterModule.forRoot(routes)
      ],
      // 导出路由模块
      exports: [RouterModule]
    })
    export class AppRoutingModule { }
    
    
    1. 创建路由出口
    <router-outlet></router-outlet> 
    
    1. 创建路由链接
    <div>
      <nav>
        <a routerLink="/homePage">HomePage</a>
        <!-- 带参数路由 -->
        <a routerLink="/details/{{id}}">明细</a>
        <a [routerLink]="['/details', id]">明细</a>
      </nav>
    </div>
    
    1. 通过js路由
    // 引入Router
    import { Router } from '@angular/router';
    ...
    // 注入router
    constructor( private router: Router) { }
    ...
    // 导航到路由
    this.router.navigate(['details', id]);
    // 多参数传递
    this.router.navigate(['details'], {queryParams: {id: '1',type: 't'}
    // 直接通过url导航
    this.router.navigateByUrl('details/1');
    ...
    
    1. 从路由中获取参数
    // 引入Router
    import { ActivatedRoute } from '@angular/router';
    // 注入ActivatedRoute
    constructor(  private activatedRoute: ActivatedRoute) {}
    ...
    // 获取参数
    this.activatedRoute.queryParams.subscribe(queryParams => {
            let id= queryParams.id;
            let type= queryParams.type;
        });
    
    1. 返回上一页
    import { Location } from '@angular/common';
    constructor( private location: Location) {}
    goBack(): void {
      this.location.back();
    }
    
  • 相关阅读:
    Restful接口传入多参数
    map转换成JSON的3种方式
    项目打包后执行start.sh提示“no such file or directory”解决办法,linux中给文件增加权限
    如何将一个a表a1字段与b表b1字段的笛卡尔积插入到e表中
    get、set方法的取代注释之lombok插件
    推荐 33 个 IDEA 最牛配置转(Java技术栈)
    mysql-----group by 对多个字段进行分组
    mysql获取某段时间内每一天的统计数据
    发票流水号生成方式
    postman之post请求传参
  • 原文地址:https://www.cnblogs.com/luguojun/p/14294725.html
Copyright © 2011-2022 走看看