详解angular2实现ng2-router 路由和嵌套路由
发布时间 - 2026-01-11 00:20:58 点击率:次实现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
实现效果:
- 路由,单机“首页”加载home.component.ts
- 单机"列表“加载list.component.ts
- 列表中包含嵌套路由,tab页
- 单机"标签一"加载list-one.component.ts
- 单机"标签二"加载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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何实现API版本控制_Laravel版本化API设计方案
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
Android Socket接口实现即时通讯实例代码
如何安全更换建站之星模板并保留数据?
Laravel怎么调用外部API_Laravel Http Client客户端使用
nodejs redis 发布订阅机制封装实现方法及实例代码
香港服务器建站指南:免备案优势与SEO优化技巧全解析
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
,交易猫的商品怎么发布到网站上去?
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
网站优化排名时,需要考虑哪些问题呢?
Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】
如何快速生成可下载的建站源码工具?
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
如何在万网利用已有域名快速建站?
Laravel如何构建RESTful API_Laravel标准化API接口开发指南
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
C#如何调用原生C++ COM对象详解
如何用虚拟主机快速搭建网站?详细步骤解析
如何快速搭建个人网站并优化SEO?
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
PHP正则匹配日期和时间(时间戳转换)的实例代码
如何用JavaScript实现文本编辑器_光标和选区怎么处理
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
Python面向对象测试方法_mock解析【教程】
Android自定义控件实现温度旋转按钮效果
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
北京专业网站制作设计师招聘,北京白云观官方网站?
js代码实现下拉菜单【推荐】
Laravel PHP版本要求一览_Laravel各版本环境要求对照
如何用景安虚拟主机手机版绑定域名建站?
php打包exe后无法访问网络共享_共享权限设置方法【教程】
php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】
文字头像制作网站推荐软件,醒图能自动配文字吗?
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
装修招标网站设计制作流程,装修招标流程?
北京的网站制作公司有哪些,哪个视频网站最好?
Laravel如何升级到最新版本?(升级指南和步骤)
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
如何在阿里云高效完成企业建站全流程?
php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】
如何有效防御Web建站篡改攻击?
googleplay官方入口在哪里_Google Play官方商店快速入口指南
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)

