Angular2 路由问题修复详解

发布时间 - 2026-01-10 23:20:38    点击率:

Angular2 提供了比angular1 更为强大的路由功能,但是在具体使用路由过程中,可是出现了很多路由不按照预想的方式执行的问题。为了说明今天的问题,我特地新建了一个测试工程。欢迎交流。

首先介绍一下测试代码的组织结构,

其中包含两个组件:button、accordion。这个例子采用的是ng2-bootstrap.

我展示一下路由配置:

/**
 * Created by guozhiqi on 2017/2/24.
 */
import {Route,Routes}from '@angular/router';
import {AppComponent}from './app.component';
import {LayoutComponent}from './layout/layout.component';

export const routes:Routes=[
 {
  path:'',
  redirectTo:'button',
  pathMatch:'full'
 },
 {
  path:'',
  component:LayoutComponent,
  children:[
   {
    path:'button',
    loadChildren:'./Button/Button-guo.module#ButtonGuoModule'
   },
   {
    path:'accordion',
    loadChildren:'./accordionguo/accordion-guo.module#AccordionGuoModule'
   }
  ]
 },
 {
  path:'**',
  redirectTo:'button',
 }
];

这段路由中我定义了默认路由,会跳转到button,但是我采用最新的angular-cli,并没有进行跳转,并且默认路由并没有使用layoutcomponent组件,这是最大的问题,因为layoutcomponent组件是整个页面的样式文件。

目前的结果什么呢?

我展示一下appmodule.ts代码:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import {ButtonGuoModule}from './button/button-guo.module';
import { AppComponent } from './app.component';
import {ButtonsModule}from 'ng2-bootstrap/buttons';
import {routes}from './app.routing';
import {RouterModule}from '@angular/router';
import {CommonModule}from '@angular/common';
import {AccordionGuoModule}from './accordionGuo/accordion-guo.module';
import {LayoutComponent}from './layout/layout.component';
@NgModule({
 declarations: [
  AppComponent,LayoutComponent
 ],
 imports: [RouterModule.forRoot(routes),AccordionGuoModule,
  BrowserModule,RouterModule,CommonModule,
  FormsModule,ButtonGuoModule,
  HttpModule
 ],
 providers: [],
 bootstrap: [AppComponent]
})
export class AppModule { }

请注意appmodule.ts中我标红的引入module,如果我将accordionmodule放在buttonmodule前面,那么显示的就是accordionmodule的内容,反之显示的就是buttonmodule的内容。

执行结果:

1.accordionmodule在buttonmodule前面

2.buttonmodule在accordionmodule前面

请注意,更改了顺序以后,务必重新编译,重新执行 ng serve命令。

会什么会出现这个问题?欢迎大家交流。下篇我会专门解释这个问题的答案


# angular  # 路由详解  # angularjs路由详解  # angularjs  # 路由问题修复  # Angular2 之 路由与导航详细介绍  # 详解angular2实现ng2-router 路由和嵌套路由  # Angular2学习笔记——详解路由器模型(Router)  # Angular2之二级路由详解  # 这个问题  # 请注意  # 的是  # 这是  # 放在  # 我会  # 这段  # 欢迎大家  # 我将  # 什么呢  # 跳转  # 介绍一下  # 改了  # 组织结构  # 跳转到  # 过程中  # 出现了  # 其中包含  # 但是我  # 路由功能 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  如何快速配置高效服务器建站软件?  Laravel怎么使用artisan命令缓存配置和视图  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  装修招标网站设计制作流程,装修招标流程?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  Laravel如何使用Eloquent进行子查询  如何登录建站主机?访问步骤全解析  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  javascript中闭包概念与用法深入理解  *服务器网站为何频现安全漏洞?  中山网站制作网页,中山新生登记系统登记流程?  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  手机网站制作与建设方案,手机网站如何建设?  java ZXing生成二维码及条码实例分享  微信小程序 配置文件详细介绍  Linux系统命令中screen命令详解  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  公司网站制作价格怎么算,公司办个官网需要多少钱?  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  微信h5制作网站有哪些,免费微信H5页面制作工具?  Linux系统命令中tree命令详解  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  Java解压缩zip - 解压缩多个文件或文件夹实例  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  如何在企业微信快速生成手机电脑官网?  如何在阿里云服务器自主搭建网站?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  Swift中switch语句区间和元组模式匹配  如何用PHP工具快速搭建高效网站?  Laravel如何优化应用性能?(缓存和优化命令)  Laravel怎么实现模型属性的自动加密  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  原生JS实现图片轮播切换效果  Laravel如何实现数据库事务?(DB Facade示例)  如何在阿里云高效完成企业建站全流程?  Laravel如何与Pusher实现实时通信?(WebSocket示例)  高端建站如何打造兼具美学与转化的品牌官网?  文字头像制作网站推荐软件,醒图能自动配文字吗?  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  如何快速查询域名建站关键信息?  Laravel安装步骤详细教程_Laravel环境搭建指南