全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解angular2实现ng2-router 路由和嵌套路由

 实现ng2-router路由,嵌套路由

首先配置angular2的时候router模块已经下载,只需要引入即可

import {RouterModule, Routes} from "@angular/router";

我们要创建一个嵌套路由,所以需要创建以下文件

  • index.html
  • app.module.ts
  • app.component.ts
  • home.component.ts
  • list.component.ts
  • list-one.component.ts
  • list-two.component.ts

实现效果:

  1. 路由,单机“首页”加载home.component.ts
  2. 单机"列表“加载list.component.ts
  3. 列表中包含嵌套路由,tab页
  4. 单机"标签一"加载list-one.component.ts
  5. 单机"标签二"加载list-one.component.ts

开始配置

index.html界面配置两点

<head>标签中引入 <meta href="/" rel="external nofollow" />

引入路由代码显示标签 引入主组件标签 <my-app></my-app>

就这么简单, index.html界面配置完毕

app.module.ts界面配置路由

  import {BrowserModule} from "@angular/platform-browser";
  import {NgModule} from "@angular/core";
  import {RouterModule, Routes} from "@angular/router";

  // 表单 双向数据绑定
  import {FormsModule} from "@angular/forms";
  import {AppComponent} from "./app.component";
  // List中包含两个tab子组件
  import {ListComponent} from "./list.component";
  import {ListOneComponent} from "./list-one.component";
  import {ListTwoComponent} from "./list-two.component";
  import {HomeComponent} from "./home.component";
  // 定义路由, bootstrap默认加载组件就是AppComponent,所以他就是主页导航页,然后添加的路由都在他的模板中。

  // 可以所有代码写在NgModule中, 也可以这样自定义常量,然后使用。

  // 定义常量 嵌套自路由
  const appChildRoutes: Routes = [
   {path: "one", component: ListOneComponent},
   {path: "two", component: ListTwoComponent},
   // 如果地址栏中输入没有定义的路由就跳转到one路由界面
   {
    path: '**', redirectTo: "one"
   }
  ];
  // 定义常量 路由
  const appRoutes:Routes = [
   {path: '', component: HomeComponent},
   {
    path: 'list',
    component: ListComponent,
    children: appChildRoutes
  ];
  // 引用定义的路由
  @NgModule({
   imports: [
    BrowserModule,
    FormsModule,
    RouterModule.forRoot(appRoutes)
   ],
   declarations: [
    AppComponent,
    ListComponent,
    HomeComponent,
    ListOneComponent,
    ListTwoComponent
   ],
   bootstrap: [AppComponent]
  })
  export class AppModule {
  
  }

这样就完成了嵌套路由的配置

显示路由内容

app.component.ts

  import {Component} from "@angular/core";
  @Component({
   selector: "my-app",
   // templateUrl: "../views/one.html"
   template: `
        <div>
        <!--使用了bootstrap样式的导航,routerLinkActive,表示路由激活的时候,谈价active类样式-->
         <ul class="nav navbar-nav">
          <li routerLinkActive="active"><a routerLink="home">首页</a></li>
          <li routerLinkActive="active"><a routerLink="contact">联系我们</a></li>
          <li routerLinkActive="active"><a routerLink="product">产品</a></li>
         </ul>
         <!--路由内容显示区域-->
         <router-outlet></router-outlet>
        </div>
        `
  })
  export class AppComponent {
  
  }

list.component.ts

  import {Component} from "@angular/core";
  @Component({
    selector: "my-list",
    // templateUrl: "../views/list.html"
    template: `
       <div>
        <!-- 子路由连接 -->
        <a routerLink="one">one</a>
        <a routerLink="two">two</a>
        <!-- 路由内容显示标签 -->
        <router-outlet></router-outlet>
       </div>
     `
  })
  export class ListComponent {
    name = "list";
  }

list-one.component.ts

  import {Component} from "@angular/core"
  @Component({
    selector: "my-list-one",
    template:`
      {{name}}
    `
  })
  export class ListOneComponent {
    name = "list-one";
    }

list-two.component.ts同理

获取路由参数id (about:id) 添加模块 ActivatedRoute

  import {ActivatedRoute} from "@angular/router";  
  export class AboutList {
    id: Object;
    constructor(public route:ActivatedRoute) {
      this.id = {};
    }
    ngOnInit() {
      this.route.params.subscribe(params => {
        this.id = params // {id: "xxx"}
      });
    }
  }

直接获取id值

  this.route.snapshot.params["id"]
补助: 路由中的界面跳转
  import {Router} from "@angular/router";
  
  constructor(public router: Router) {
  // 相当于window.location.href,界面跳转
    router.navigateByUrl('home');
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# angular2  # router嵌套  # 路由嵌套  # angularjs  # 嵌套路由  # angular2中router路由跳转navigate的使用与刷新页面问题详解  # Angular2学习笔记——详解路由器模型(Router)  # Angular2 之 路由与导航详细介绍  # AngularJs 弹出模态框(model)  # Angular弹出模态框的两种方式  # AngularJS $modal弹出框实例代码  # angularjs创建弹出框实现拖动效果  # AngularJS Toaster使用详解  # Angular 2使用路由自定义弹出组件toast操作示例  # 加载  # 跳转  # 首页  # 都在  # 自定义  # 只需要  # 表单  # 写在  # 绑定  # 创建一个  # 大家多多  # 跳转到  # 两点  # 完成了  # 使用了  # 就这么  # 栏中输入  # 列表中  # 导航页  # rel 


相关文章: 常州企业网站制作公司,全国继续教育网怎么登录?  青岛网站建设如何选择本地服务器?  做企业网站制作流程,企业网站制作基本流程有哪些?  如何快速生成可下载的建站源码工具?  行程制作网站有哪些,第三方机票电子行程单怎么开?  建站主机助手选型指南:2025年热门推荐与高效部署技巧  韩国服务器如何优化跨境访问实现高效连接?  装修招标网站设计制作流程,装修招标流程?  广平建站公司哪家专业可靠?如何选择?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  建站之星后台管理系统如何操作?  如何快速打造个性化非模板自助建站?  如何通过商城免费建站系统源码自定义网站主题?  如何快速辨别茅台真假?关键步骤解析  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  建站三合一如何选?哪家性价比更高?  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  青浦网站制作公司有哪些,苹果官网发货地是哪里?  如何在Golang中使用replace替换模块_指定本地或远程路径  如何快速搭建自助建站会员专属系统?  Python lxml的etree和ElementTree有什么区别  小程序网站制作需要准备什么资料,如何制作小程序?  如何用狗爹虚拟主机快速搭建网站?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  微信小程序制作网站有哪些,微信小程序需要做网站吗?  php json中文编码为null的解决办法  油猴 教程,油猴搜脚本为什么会网页无法显示?  临沂网站制作公司有哪些,临沂第四中学官网?  七夕网站制作视频,七夕大促活动怎么报名?  定制建站流程解析:需求评估与SEO优化功能开发指南  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  如何用PHP快速搭建高效网站?分步指南  西安专业网站制作公司有哪些,陕西省建行官方网站?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  无锡营销型网站制作公司,无锡网选车牌流程?  建站主机核心功能解析:服务器选择与网站搭建流程指南  建站之星客服服务时间及联系方式如何?  如何选择PHP开源工具快速搭建网站?    建站之星代理如何获取技术支持?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  独立制作一个网站多少钱,建立网站需要花多少钱?  如何快速搭建支持数据库操作的智能建站平台?  如何在阿里云高效完成企业建站全流程?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  如何选择最佳自助建站系统?快速指南解析优劣  简单实现Android文件上传  如何用好域名打造高点击率的自主建站?  MySQL查询结果复制到新表的方法(更新、插入) 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。