Angular2 路由问题修复详解

 更新时间:2017年03月01日 08:48:50   作者:baidixing  
这篇文章主要介绍了Angular2 路由问题修复详解的相关资料,并建了一个测试工程,把详细的过程分享给大家,需要的朋友可以参考下

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

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

其中包含两个组件: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前面

2.buttonmodule在accordionmodule前面

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

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

相关文章

  • angularjs实现分页和搜索功能

    angularjs实现分页和搜索功能

    这篇文章主要介绍了angularjs实现分页和搜索功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • AngularJS实现全选反选功能

    AngularJS实现全选反选功能

    这篇文章主要介绍了AngularJS实现全选反选功能,这里用到AngularJS四大特性之二----双向数据绑定,对angularjs实现全选反选相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • Angular中使用ui router实现系统权限控制及开发遇到问题

    Angular中使用ui router实现系统权限控制及开发遇到问题

    这篇文章主要介绍了Angular中使用ui router实现系统权限控制及开发遇到问题的相关资料,本文分步骤介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • AngularJS实现多级下拉框

    AngularJS实现多级下拉框

    这篇文章主要为大家详细介绍了AngularJS实现多级下拉框,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Angular中使用Intersection Observer API实现无限滚动效果

    Angular中使用Intersection Observer API实现无限滚动效果

    这篇文章主要介绍了Angular中使用Intersection Observer API实现无限滚动,实现原理为 在data下面加一个loading元素 如果此元素进入视窗 则调用api获取新的数据加到原来的数据里面,这时loading就会被新数据顶下去,感兴趣的朋友一起看看吧
    2023-12-12
  • 详解AngularJs路由之Ui-router-resolve(预加载)

    详解AngularJs路由之Ui-router-resolve(预加载)

    本篇文章主要介绍了详解AngularJs路由之Ui-router-resolve(预加载),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • AngularJS 基础ng-class-even指令用法

    AngularJS 基础ng-class-even指令用法

    本文主要介绍AngularJS ng-class-even 指令,这里整理了ng-class-even基础知识资料,并附实例代码和效果图,学习AngularJS指令的朋友可以看下
    2016-08-08
  • AngularJS基础 ng-readonly 指令简单示例

    AngularJS基础 ng-readonly 指令简单示例

    本文主要介绍AngularJS ng-readonly 指令,这里对ng-readonly指令的资料做了整理,有学习AngularJS 指令的同学可以参考下
    2016-08-08
  • AngularJS 如何在控制台进行错误调试

    AngularJS 如何在控制台进行错误调试

    本文主要介绍AngularJS 如何在控制台进行错误调试,还不错,分享给大家,希望给大家做一个参考。
    2016-06-06
  • Angular设置title信息解决SEO方面存在问题

    Angular设置title信息解决SEO方面存在问题

    爬虫在检索seo信息的时候会读不了js给其赋的值,导致搜索引擎收录不了或者收录了无效的信息,下面本文给大家介绍Angular设置title信息解决SEO方面存在问题,需要的朋友可以参考下
    2016-08-08

最新评论