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 相关文章推荐
JS设置获取cookies的方法
Jan 26 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
Aug 10 Javascript
jQuery中$.extend()用法实例
Jun 24 Javascript
Bootstrap每天必学之基础排版
Nov 20 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
Apr 06 Javascript
JavaScript操作选择对象的简单实例
May 16 Javascript
Jquery $when done then的用法详解
May 20 Javascript
使用three.js 画渐变的直线
Jun 05 Javascript
react系列从零开始_简单谈谈react
Jul 06 Javascript
node使用promise替代回调函数
May 07 Javascript
浅谈vue同一页面中拥有两个表单时,的验证问题
Sep 18 Javascript
如何在微信小程序中存setStorage
Dec 13 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
谈谈新手如何学习PHP
2006/12/23 PHP
解决GD中文乱码问题
2007/02/14 PHP
PHP支持多种格式图片上传(支持jpg、png、gif)
2011/11/03 PHP
PHP防止跨域提交表单
2013/11/01 PHP
thinkphp3.2.2实现生成多张缩略图的方法
2014/12/19 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
Aster vs Newbee BO3 第二场2.18
2021/03/10 DOTA
在JavaScript中实现命名空间
2006/11/23 Javascript
给moz-firefox下添加IE方法和属性
2007/04/10 Javascript
基于jQuery的消息提示插件 DivAlert之旅(二)
2010/04/01 Javascript
ext jquery 简单比较
2010/04/07 Javascript
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
javascript实现焦点滚动图效果 具体方法
2013/06/24 Javascript
动态加载script文件的两种方法
2013/08/15 Javascript
js选择并转移导航菜单示例代码
2014/08/19 Javascript
学习JavaScript设计模式(继承)
2015/11/26 Javascript
jQuery实现点击某个div打开层,点击其他div关闭层实例分析(阻止冒泡)
2016/11/18 Javascript
基于JavaScript实现本地图片预览
2017/02/08 Javascript
简单实现jquery隔行变色
2017/11/09 jQuery
Vue源码探究之虚拟节点的实现
2019/04/17 Javascript
NodeJS读取分析Nginx错误日志的方法
2019/05/14 NodeJs
nodejs log4js 使用详解
2019/05/31 NodeJs
vue实现打地鼠小游戏
2020/08/21 Javascript
[44:09]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第二局
2016/02/25 DOTA
tensorflow之并行读入数据详解
2020/02/05 Python
python打开文件的方式有哪些
2020/06/29 Python
jupyter使用自动补全和切换默认浏览器的方法
2020/11/18 Python
H5 canvas实现贪吃蛇小游戏
2017/07/28 HTML / CSS
德国家具在线:Fashion For Home
2017/03/11 全球购物
Under Armour安德玛德国官网:美国高端运动科技品牌
2019/03/09 全球购物
副厂长岗位职责
2014/02/02 职场文书
园林技术个人的自我评价
2014/02/15 职场文书
企业后勤岗位职责
2014/02/28 职场文书
政风行风评议工作总结
2014/10/21 职场文书
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle
《帝国时代4》赛季预告 新增内容编译器可创造地图
2022/04/03 其他游戏