Angular2 路由问题修复详解


Posted in Javascript onMarch 01, 2017

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

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

Angular2 路由问题修复详解

其中包含两个组件: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前面

Angular2 路由问题修复详解

2.buttonmodule在accordionmodule前面

Angular2 路由问题修复详解

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

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

Javascript 相关文章推荐
Javascript Global对象
Aug 13 Javascript
教你如何使用PHP输出中文JSON字符串
May 22 Javascript
我用的一些Node.js开发工具、开发包、框架等总结
Sep 25 Javascript
jQuery获取对象简单实现方法小结
Oct 30 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
Apr 30 Javascript
JS实现的新浪微博大厅文字内容滚动效果代码
Nov 05 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
Jun 17 Javascript
Ajax分页插件Pagination从前台jQuery到后端java总结
Jul 22 Javascript
原生js的RSA和AES加密解密算法
Oct 08 Javascript
使用jquery datatable和bootsrap创建表格实例代码
Mar 17 Javascript
详解promise.then,process.nextTick, setTimeout 以及 setImmediate的执行顺序
Nov 21 Javascript
vue 解决form表单提交但不跳转页面的问题
Oct 30 Javascript
浅谈js for循环输出i为同一值的问题
Mar 01 #Javascript
jQuery EasyUI Draggable拖动组件
Mar 01 #Javascript
Angular.js之作用域scope'@','=','&'实例详解
Feb 28 #Javascript
jQuery EasyUI ProgressBar进度条组件
Feb 28 #Javascript
jQuery实现ajax无刷新分页页码控件
Feb 28 #Javascript
jQuery EasyUI Panel面板组件使用详解
Feb 28 #Javascript
AngularJS constant和value区别详解
Feb 28 #Javascript
You might like
ThinkPHP验证码和分页实例教程
2014/08/22 PHP
php实现的数字验证码及数字运算验证码
2015/07/30 PHP
php微信公众号开发(3)php实现简单微信文本通讯
2016/12/15 PHP
[原创]php正则删除img标签的方法示例
2017/05/27 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
PHP封装cURL工具类与应用示例
2019/07/01 PHP
mac pecl 安装php7.1扩展教程
2019/10/17 PHP
多个iframe自动调整大小的问题
2006/09/18 Javascript
基于jQuery的星级评分插件
2011/08/12 Javascript
js判断鼠标左、中、右键哪个被点击的方法
2015/01/27 Javascript
javascript实现在网页任意处点左键弹出隐藏菜单的方法
2015/05/13 Javascript
AngularJS 模型详细介绍及实例代码
2016/07/27 Javascript
使用伪命名空间封装保护独自创建的对象方法
2016/08/04 Javascript
jstree的简单实例
2016/12/01 Javascript
vue ssr 指南详读
2018/06/29 Javascript
详解Vue改变数组中对象的属性不重新渲染View的解决方案
2018/09/21 Javascript
Python中文件遍历的两种方法
2014/06/16 Python
Python读写文件方法总结
2015/06/09 Python
解决python删除文件的权限错误问题
2018/04/24 Python
pandas 根据列的值选取所有行的示例
2018/11/07 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
2020/01/20 Python
TensorFlow 多元函数的极值实例
2020/02/10 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
Python3爬虫带上cookie的实例代码
2020/07/28 Python
俄罗斯GamePark游戏商店网站:购买游戏、游戏机和配件
2020/03/13 全球购物
写一个方法1000的阶乘
2012/11/21 面试题
最新个人职业生涯规划书
2014/01/22 职场文书
乡镇四风对照检查材料
2014/08/31 职场文书
2014年电话销售工作总结
2014/12/01 职场文书
会议欢迎词
2015/01/23 职场文书
团员年度个人总结
2015/02/26 职场文书
高中班主任心得体会
2016/01/07 职场文书
乡镇团代会开幕词
2016/03/04 职场文书
2019年大学生职业生涯规划书最新范文
2019/03/25 职场文书
Python字符串的转义字符
2022/04/07 Python
多线程Spring通过@Scheduled实现定时任务
2022/05/25 Java/Android