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脚本
Dec 12 Javascript
Javascript 面向对象 对象(Object)
May 13 Javascript
JavaScript获取onclick、onchange等事件值的代码
Jul 22 Javascript
自己动手手写jQuery插件总结
Jan 20 Javascript
AngularJS 执行流程详细介绍
Aug 18 Javascript
javascript的函数劫持浅析
Sep 26 Javascript
bootstrap快速制作后台界面
Dec 05 Javascript
JS实现基于拖拽改变物体大小的方法
Jan 23 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
May 09 jQuery
微信小程序实现购物页面左右联动
Feb 15 Javascript
解决vue单页面修改样式无法覆盖问题
Aug 05 Javascript
html实现随机点名器的示例代码
Apr 02 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利用smtp类实现电子邮件发送
2015/10/30 PHP
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
2018/10/25 PHP
PHP设计模式之策略模式原理与用法实例分析
2019/04/04 PHP
laravel withCount 统计关联数量的方法
2019/10/10 PHP
JavaScript 异步调用框架 (Part 5 - 链式实现)
2009/08/04 Javascript
十个迅速提升JQuery性能让你的JQuery跑得更快
2012/12/10 Javascript
jquery获取div距离窗口和父级dv的距离示例
2013/10/10 Javascript
JS+JSP checkBox 全选具体实现
2014/01/02 Javascript
js字符串完全替换函数分享
2014/12/03 Javascript
JS实现光滑展开合拢的菜单效果代码
2015/09/16 Javascript
Highcharts入门之基本属性
2016/08/02 Javascript
简洁实用的BootStrap jQuery手风琴插件
2016/08/31 Javascript
jQuery双向列表选择器DIV模拟版
2016/11/01 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
JavaScript实现垂直滚动条效果
2017/01/18 Javascript
opencv 识别微信登录验证滑动块位置
2018/08/07 Javascript
JavaScript数组特性与实践应用深入详解
2018/12/30 Javascript
Vue CLI3基础学习之pages构建多页应用
2019/06/02 Javascript
[02:33]2018DOTA2亚洲邀请赛赛前采访——LGD
2018/04/04 DOTA
零基础写python爬虫之使用urllib2组件抓取网页内容
2014/11/04 Python
Python CSV模块使用实例
2015/04/09 Python
python制作企业邮箱的爆破脚本
2016/10/05 Python
在matplotlib的图中设置中文标签的方法
2018/12/13 Python
Python发展史及网络爬虫
2019/06/19 Python
Django RBAC权限管理设计过程详解
2019/08/06 Python
Python随机函数库random的使用方法详解
2019/08/21 Python
使用 Python 写一个简易的抽奖程序
2019/12/08 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
办公室主任职责范文
2013/11/08 职场文书
艺术设计专业个人求职信范文
2013/12/11 职场文书
电钳专业个人求职信
2014/01/04 职场文书
槐乡的孩子教学反思
2014/04/27 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
2015年电教工作总结
2015/05/26 职场文书