zoukankan      html  css  js  c++  java
  • 路由

    1.路由原理:

    2.静态路由

       1)通过数组配置

            const routes: Routes = [

      {
        path: 'home',
        component:TopNavComponent
      },
      {
        path: 'Manager',
        component:ManagerComponent
      }]
     
           <a routerLink="/home">首页</a>
      <a routerLink="/Manager">用户</a>

       2)通过js跳转

       <a (clikc)="toIndex( )">首页</a>

           toIndex( ){

        this.router.navigate(['/home']);  

      }

    3.动态路由  

       1)通过数组配置   

           const routes: Routes = [

      {
        path: 'home/:aid',
        component:TopNavComponent
      },
      {
        path: 'Manager/:cid',
        component:ManagerComponent
      }]
           <a routerLink="/home/1">首页</a>
      <a routerLink="/Manager/1">用户</a>

           获取动态路由的值:this.route.params.subscribe(function(data){});

       2)通过js跳转(get)

         <a (clikc)="toIndex( )">首页</a>

           toIndex( ){ 

      let navigationExtras: NavigationExtras = {
        queryParams: { 'session_id': '123' },
        
      };
      this.router.navigate(['/news'],navigationExtras);

      }

          获取动态路由的值:this.route.queryParams.subscribe(function(data){});

    4.动态加载的组件显示的地方-->
    <router-outlet></router-outlet>

    5. routerLinkActive

    6.父子路由:

     const routes: Routes = [

      {
        path: 'home',
        component:TopNavComponent,

        children:[ /*配置子路由*/

        {
          path: 'welcome',
          component:WelcomeComponent,
        }]

      },
      {
        path: 'Manager',
        component:ManagerComponent
      }
    ]

    7.默认跳转的路由

    {
      path:'', /*刚进来是空的话可以跳转到首页*/
      redirectTo:'TopNav',
      pathMatch:'full',
    },
      // { /*匹配不到路由的时候加载的组件*/
      // path: '**', /*任意的路由*/
      // // component:HomeComponent
      // redirectTo:'home'
    // }
     
     

    路由守卫:canDeactivate与canActivate同样应用
    import { NgModule } from '@angular/core';
    import { Routes, RouterModule } from '@angular/router';
    import { IndexComponent } from './views/index/index.component';
    import { TestComponent } from './views/test/test.component';
    import { LoginActiveService } from './services/login-active.service'
    const routes: Routes = [
        { path: '', component: IndexComponent },
        { path: 'test', component: TestComponent , canDeactivate: [LoginActiveService] }
    ];
    
    @NgModule({
      imports: [RouterModule.forRoot(routes)],
      exports: [RouterModule]
    })
    export class AppRoutingModule { }
    import { Injectable , canDeactivate} from '@angular/core';
    
    @Injectable({
      providedIn: 'root'
    })
    export class LoginActiveService implements canDeactivate{
        canDeactivate(){
        
        return window.confirm("是否进入");
      }
    }
  • 相关阅读:
    permission 文档 翻译 运行时权限
    TabLayout ViewPager Fragment 简介 案例 MD
    Log 日志工具类 保存到文件 MD
    OkHttp 官方wiki 翻译 MD
    Okhttp 简介 示例 MD
    OkHttp 官方Wiki之【使用案例】
    DialogPlus
    倒计时 总结 Timer Handler CountDownTimer RxJava MD
    RecyclerView 判断滑到底部 顶部 预加载 更多 分页 MD
    CSS3的媒体查询(Media Queries)与移动设备显示尺寸大全
  • 原文地址:https://www.cnblogs.com/yuyedaocao/p/10004759.html
Copyright © 2011-2022 走看看