Angular2 路由問題修復(fù)詳解
Angular2 提供了比angular1 更為強(qiáng)大的路由功能,但是在具體使用路由過程中,可是出現(xiàn)了很多路由不按照預(yù)想的方式執(zhí)行的問題。為了說明今天的問題,我特地新建了一個(gè)測(cè)試工程。歡迎交流。
首先介紹一下測(cè)試代碼的組織結(jié)構(gòu),

其中包含兩個(gè)組件:button、accordion。這個(gè)例子采用的是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',
}
];
這段路由中我定義了默認(rèn)路由,會(huì)跳轉(zhuǎn)到button,但是我采用最新的angular-cli,并沒有進(jìn)行跳轉(zhuǎn),并且默認(rèn)路由并沒有使用layoutcomponent組件,這是最大的問題,因?yàn)閘ayoutcomponent組件是整個(gè)頁(yè)面的樣式文件。
目前的結(jié)果什么呢?
我展示一下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 { }
請(qǐng)注意appmodule.ts中我標(biāo)紅的引入module,如果我將accordionmodule放在buttonmodule前面,那么顯示的就是accordionmodule的內(nèi)容,反之顯示的就是buttonmodule的內(nèi)容。
執(zhí)行結(jié)果:
1.accordionmodule在buttonmodule前面

2.buttonmodule在accordionmodule前面

請(qǐng)注意,更改了順序以后,務(wù)必重新編譯,重新執(zhí)行 ng serve命令。
會(huì)什么會(huì)出現(xiàn)這個(gè)問題?歡迎大家交流。下篇我會(huì)專門解釋這個(gè)問題的答案
相關(guān)文章
angularjs實(shí)現(xiàn)分頁(yè)和搜索功能
這篇文章主要介紹了angularjs實(shí)現(xiàn)分頁(yè)和搜索功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
Angular中使用ui router實(shí)現(xiàn)系統(tǒng)權(quán)限控制及開發(fā)遇到問題
這篇文章主要介紹了Angular中使用ui router實(shí)現(xiàn)系統(tǒng)權(quán)限控制及開發(fā)遇到問題的相關(guān)資料,本文分步驟介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09
AngularJS實(shí)現(xiàn)多級(jí)下拉框
這篇文章主要為大家詳細(xì)介紹了AngularJS實(shí)現(xiàn)多級(jí)下拉框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Angular中使用Intersection Observer API實(shí)現(xiàn)無限滾動(dòng)效果
這篇文章主要介紹了Angular中使用Intersection Observer API實(shí)現(xiàn)無限滾動(dòng),實(shí)現(xiàn)原理為 在data下面加一個(gè)loading元素 如果此元素進(jìn)入視窗 則調(diào)用api獲取新的數(shù)據(jù)加到原來的數(shù)據(jù)里面,這時(shí)loading就會(huì)被新數(shù)據(jù)頂下去,感興趣的朋友一起看看吧2023-12-12
詳解AngularJs路由之Ui-router-resolve(預(yù)加載)
本篇文章主要介紹了詳解AngularJs路由之Ui-router-resolve(預(yù)加載),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
AngularJS 基礎(chǔ)ng-class-even指令用法
本文主要介紹AngularJS ng-class-even 指令,這里整理了ng-class-even基礎(chǔ)知識(shí)資料,并附實(shí)例代碼和效果圖,學(xué)習(xí)AngularJS指令的朋友可以看下2016-08-08
AngularJS基礎(chǔ) ng-readonly 指令簡(jiǎn)單示例
本文主要介紹AngularJS ng-readonly 指令,這里對(duì)ng-readonly指令的資料做了整理,有學(xué)習(xí)AngularJS 指令的同學(xué)可以參考下2016-08-08
AngularJS 如何在控制臺(tái)進(jìn)行錯(cuò)誤調(diào)試
本文主要介紹AngularJS 如何在控制臺(tái)進(jìn)行錯(cuò)誤調(diào)試,還不錯(cuò),分享給大家,希望給大家做一個(gè)參考。2016-06-06
Angular設(shè)置title信息解決SEO方面存在問題
爬蟲在檢索seo信息的時(shí)候會(huì)讀不了js給其賦的值,導(dǎo)致搜索引擎收錄不了或者收錄了無效的信息,下面本文給大家介紹Angular設(shè)置title信息解決SEO方面存在問題,需要的朋友可以參考下2016-08-08

