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中的new使用
Mar 20 Javascript
滚动图片效果 jquery实现回旋滚动效果
Jan 08 Javascript
JS获取浏览器版本及名称实现函数
Apr 02 Javascript
javascript 闭包详解
Jul 02 Javascript
jQuery添加和删除指定标签的方法
Dec 16 Javascript
JavaScript中使用数组方法汇总
Feb 16 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
Dec 12 Javascript
关于微信上网页图片点击全屏放大效果
Dec 19 Javascript
jQuery实现html双向绑定功能示例
Oct 09 jQuery
用node-webkit把web应用打包成桌面应用(windows环境)
Feb 01 Javascript
JavaScript一元正号运算符示例代码
Jun 30 Javascript
Vue根据条件添加click事件的方式
Nov 09 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
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
2013/11/26 PHP
php自定义urlencode,urldecode函数实例
2015/03/24 PHP
PHP正则获取页面所有图片地址
2016/03/23 PHP
PHP 出现 http500 错误的解决方法
2021/03/09 PHP
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
解析利用javascript如何判断一个数为素数
2016/12/08 Javascript
vue2.0 与 bootstrap datetimepicker的结合使用实例
2017/05/22 Javascript
微信小程序 支付功能(前端)的实现
2017/05/24 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
2017/08/29 jQuery
简单的三步vuex入门
2018/05/20 Javascript
详解vue-loader在项目中是如何配置的
2018/06/04 Javascript
JSONP原理及应用实例详解
2018/09/13 Javascript
Vue2.x中利用@font-size引入字体图标报错的解决方法
2018/09/28 Javascript
开发用到的js封装方法(20种)
2018/10/12 Javascript
Node.js原生api搭建web服务器的方法步骤
2019/02/15 Javascript
JavaScript ES6 Class类实现原理详解
2020/05/08 Javascript
[37:45]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS Orenda
2014/05/22 DOTA
让python的Cookie.py模块支持冒号做key的方法
2010/12/28 Python
用Python生成器实现微线程编程的教程
2015/04/13 Python
python实现下载指定网址所有图片的方法
2015/08/08 Python
详解python上传文件和字符到PHP服务器
2017/11/24 Python
python列表list保留顺序去重的实例
2018/12/14 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
2018/12/20 Python
Django项目基础配置和基本使用过程解析
2019/11/25 Python
python实现智能语音天气预报
2019/12/02 Python
eharmony澳大利亚:网上约会服务
2020/02/29 全球购物
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
美丽乡村建设实施方案
2014/03/23 职场文书
党员干部批评与自我批评反四风思想汇报
2014/09/21 职场文书
全国法制宣传日活动总结2014
2014/11/01 职场文书
低端且暴利的线上线下创业项目分享
2019/09/03 职场文书
MYSQL(电话号码,身份证)数据脱敏的实现
2021/05/28 MySQL
redis requires ruby version2.2.2的解决方案
2021/07/15 Redis
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电