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 相关文章推荐
验证用户是否修改过页面的数据的实现方法
Sep 26 Javascript
jQuery maxlength文本字数限制插件
Apr 16 Javascript
JavaScript 盒模型 尺寸深入理解
Dec 31 Javascript
jquery分页插件AmSetPager(自写)
Apr 15 Javascript
JS onkeypress兼容性写法详解
Apr 27 Javascript
vue loadmore组件上拉加载更多功能示例代码
Jul 19 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
Oct 27 jQuery
JavaScript实现表单注册、表单验证、运算符功能
Oct 15 Javascript
Vue中CSS动画原理的实现
Feb 13 Javascript
小程序使用watch监听数据变化的方法详解
Sep 20 Javascript
react MPA 多页配置详解
Oct 18 Javascript
JavaScript 常见的继承方式汇总
Sep 17 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 split()函数的用法详解
2013/06/05 PHP
thinkPHP实现将excel导入到数据库中的方法
2016/04/22 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
ThinkPHP框架整合微信支付之刷卡模式图文详解
2019/04/10 PHP
在b/s开发中经常用到的javaScript技术
2006/08/23 Javascript
javascript 读取XML数据,在页面中展现、编辑、保存的实现
2009/10/27 Javascript
js防止页面被iframe调用的方法
2014/10/30 Javascript
JavaScript中指定函数名称的相关方法
2015/06/04 Javascript
jQuery实现表格行上下移动和置顶效果
2015/06/05 Javascript
页面内容排序插件jSort使用方法
2015/10/10 Javascript
layui弹出层按钮提交iframe表单的方法
2018/08/20 Javascript
Vue请求JSON Server服务器数据的实现方法
2018/11/02 Javascript
vue-cli 首屏加载优化问题
2018/11/06 Javascript
浅谈Vue.js组件(二)
2019/04/09 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
java实现单链表增删改查的实例代码详解
2019/08/30 Javascript
VUE解决 v-html不能触发点击事件的问题
2019/10/28 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
2020/01/16 Javascript
javascript设计模式之迭代器模式
2020/01/30 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
python 装饰器功能以及函数参数使用介绍
2012/01/27 Python
Python使用time模块实现指定时间触发器示例
2017/05/18 Python
Python2随机数列生成器简单实例
2017/09/04 Python
python在非root权限下的安装方法
2018/01/23 Python
pyecharts调整图例与各板块的位置间距实例
2020/05/16 Python
keras中的backend.clip用法
2020/05/22 Python
浅谈python出错时traceback的解读
2020/07/15 Python
巴西网上药房:onofre
2016/11/21 全球购物
美国中小型企业领先的办公家具供应商:Office Designs
2016/11/26 全球购物
比较基础的php面试题及答案-编程题
2012/10/14 面试题
消防工作实施方案
2014/06/09 职场文书
2014年校务公开工作总结
2014/12/18 职场文书
英文版辞职信
2015/02/28 职场文书
提升Nginx性能的一些建议
2021/03/31 Servers
《王国之心》迎来了发售的20周年, 野村哲发布贺图
2022/04/11 其他游戏