zoukankan      html  css  js  c++  java
  • angularcli 第八篇(router 路由)

    更多详细:https://segmentfault.com/a/1190000009265310

    一、标题:页面有两个按钮(test1、test2),点击这两个按钮,跳转相应页面~

    注:可直接创建一个带路由模块的项目:ng new project --routing   (下面针对新建项目时没有带路由,后边再来新建路由)

    1、新建两个页面 test1、test2(html、css、ts):      ng g component test1  

     

    在app.modules.ts(模块)中:

    (1)导入根组件,以及相应子组件(test1、test2)   

    (2)添加相应路由组件 import { AppRoutingModules } from "./app/routing";

    (3)初始化路由器imports: [ RouterModule.forRoot(routes) ],用于在主模块中定义主要的路由信息

     

     

    2、在app.component.html中添加相应的跳转按钮,以及路由路径

     

    3、路由配置:新建路由模块 app.routing.ts(配置文件)      ng generate module app-routing --flat --module=app

      • import 根组件、子组件、路由组件;
      • 编写路由路径 const routes;
    方法:
    const
    routes: Routes = [ // path:路径 component:组件 { path: 'news', component: Newsomponent },
    { path: 'detail/:id', component: DetailComponent }, // 带参数 { path: 'other', loadChildren:"./other/other.module#otherModule" },// 懒加载子模块, 子模块需要配置路由设置启动子组件
      { path: '**', pathMatch: 'full', redirectTo: '' } // 重定向 
    ];

    /index设置页面下有 /index/testUrl1 和  /index/testUrl2 两个页面,分别表示个人资料页和修改密码页。

    我们可能希望我们的 / settings 页面拥有自己的组件,然后在设置页面组件中显示 / settings/profile 和 / settings/password 页面。我们可以这样做:

    在这里,我们在 setttings 路由中定义了两个子路由,它们将继承父路由的路径,因此修改密码页面的路由匹配地址是 /settings/password ,依此类推。

    接下来,我们需要在我们的 AppComponent(index) 组件中添加 router-outlet 指令,因为我们要在设置页面中呈现子路由。

    二、链接及访问

    <a routerLink="/detail/test1" routerLinkActive="active">detail</a>
    <a [routerLink]="['/detail', news.id]">{{news.title}}</a>   //路由中传参数
    <a [routerLink]="[{ outlets: { let2: ['news'] } }]">Contact</a>

    //注:routerLinkActive="active"
     即在本路由激活时添加样式 .active

    import { Router } from '@angular/router';
    // ...
    constructor(private router: Router) {}
    
    // ...
     to_detail(item){
      this.router.navigate(['/detail', {queryParams:item}]); //路由中传参数(多个参数)
      this.router.navigate({'
    /detail',news.id}); //一个参数   
    this.router.navigate([{ outlets: { let2: null }}]);
    }

    注:navigateByUrl 方法指向完整的绝对路径

    传参之后的接收方法:

    1.snapshot
    import { ActivateRoute } from '@angular/router';
    
    constructor( public route: ActivateRoute ) { };
    ngOnInit(){
        this.data = this.route.snapshot.params['id'];
    };
     
    2.queryParams
    import { ActivateRoute } from '@angular/router';
    
    constructor( public activeRoute:ActivateRoute ) { };
    ngOnInit(){
      this.activeRoute.queryParams.subscribe(params => {
        console.log(params);
      });
    };
  • 相关阅读:
    matplotlib 画图
    Mac anzhuangxgboost
    scala _ parameter
    cv 验证
    groupie
    pandas map, apply, applymap区别
    画图
    xgboost dmatrix中的 weight的重要性
    自然语言处理的训练范式
    java-处理大容量文本文件,行内分格符为TAB的方法
  • 原文地址:https://www.cnblogs.com/luwanying/p/9580021.html
Copyright © 2011-2022 走看看