微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Angular2 路由问题修复详解

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

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

其中包含两个组件:button、accordion。这个例子采用的是ng2-bootstrap.

我展示一下路由配置:

<div class="jb51code">
<pre class="brush:js;">
/**

  • 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:'**',}
];

这段路由中我定义了认路由,会跳转到button,但是我采用最新的angular-cli,并没有进行跳转,并且认路由并没有使用layoutcomponent组件,这是最大的问题,因为layoutcomponent组件是整个页面的样式文件

目前的结果什么呢?

我展示一下appmodule.ts代码

rush:js;"> 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前面

2.buttonmodule在accordionmodule前面

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐