摘要:默認(rèn)情況下,路由器將會(huì)忽略這次導(dǎo)航。但這樣會(huì)阻止類(lèi)似于刷新按鈕的特性。使用該選項(xiàng)可以配置導(dǎo)航到當(dāng)前時(shí)的行為。使用配置實(shí)際上不會(huì)重新加載路由,只是重新出發(fā)掛載在路由器上的事件。配置有三個(gè)值僅在路由參數(shù)更改時(shí)觸發(fā)。
onSameUrlNavigation
??從angular5.1起提供onSameUrlNavigation來(lái)支持路由重新加載。、
??有兩個(gè)值"reload"和"ignore"。默認(rèn)為"ignore"
??定義當(dāng)路由器收到一個(gè)導(dǎo)航到當(dāng)前 URL 的請(qǐng)求時(shí)應(yīng)該怎么做。 默認(rèn)情況下,路由器將會(huì)忽略這次導(dǎo)航。但這樣會(huì)阻止類(lèi)似于 "刷新" 按鈕的特性。 使用該選項(xiàng)可以配置導(dǎo)航到當(dāng)前 URL 時(shí)的行為。
使用 配置onSameUrlNavigation@NgModule({ imports: [RouterModule.forRoot( routes, { onSameUrlNavigation: "reload" } )], exports: [RouterModule] })
??reload實(shí)際上不會(huì)重新加載路由,只是重新出發(fā)掛載在路由器上的事件。
配置runGuardsAndResolvers??runGuardsAndResolvers有三個(gè)值:
paramsChange: 僅在路由參數(shù)更改時(shí)觸發(fā)。如/reports/:id 中id更改
paramsOrQueryParamsChange: 當(dāng)路由參數(shù)更改或參訓(xùn)參數(shù)更改時(shí)觸發(fā)。如/reports/:id/list?page=23中的id或page屬性更改
always?:始終觸發(fā)
const routes: Routes = [ { path: "", children: [ { path: "report-list", component: ReportListComponent }, { path: "detail/:id", component: ReportDetailComponent, runGuardsAndResolvers: "always" }, { path: "", redirectTo: "report-list", pathMatch: "full" } ] } ];組件監(jiān)聽(tīng)router.events
import {Component, OnDestroy, OnInit} from "@angular/core"; import {Observable} from "rxjs"; import {Report} from "@models/report"; import {ReportService} from "@services/report.service"; import {ActivatedRoute, NavigationEnd, Router} from "@angular/router"; @Component({ selector: "app-report-detail", templateUrl: "./report-detail.component.html", styleUrls: ["./report-detail.component.scss"] }) export class ReportDetailComponent implements OnInit, OnDestroy { report$: Observable; navigationSubscription; constructor( private reportService: ReportService, private router: Router, private route: ActivatedRoute ) { this.navigationSubscription = this.router.events.subscribe((event: any) => { if (event instanceof NavigationEnd) { this.initLoad(event); } }); } ngOnInit() { const id = +this.route.snapshot.paramMap.get("id"); this.report$ = this.reportService.getReport(id); } ngOnDestroy(): void { // 銷(xiāo)毀navigationSubscription,避免內(nèi)存泄漏 if (this.navigationSubscription) { this.navigationSubscription.unsubscribe(); } } initLoad(e) { window.scrollTo(0, 0); console.log(e); } }
???問(wèn)道Angular系列???
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/108752.html
摘要:提供以上熱更新功能使用初始化項(xiàng)目命令行進(jìn)入該目錄啟動(dòng)項(xiàng)目將附帶功能。 ??提供angular6以上HMR(熱更新)功能 使用hmr-cli npm i -g hmr-cli ??初始化angular項(xiàng)目,命令行進(jìn)入該目錄 hmr init ??npm run hmr啟動(dòng)項(xiàng)目將附帶hmr功能。 詳細(xì)配置如下: Angular6添加HMR environments目錄 environme...
摘要:設(shè)置別名在根目錄下中添加和訪問(wèn)環(huán)境變量添加了別名,以便能夠從應(yīng)用程序中的任何位置輕松訪問(wèn)環(huán)境變量。它適用于所有指定的環(huán)境,因?yàn)樗鼤?huì)根據(jù)傳遞給命令的標(biāo)志自動(dòng)解析正確的環(huán)境文件。 設(shè)置別名 ??在根目錄下tsconfig.json中添加baseUrl和paths { compilerOptions: { baseUrl: src, paths: { @app...
摘要:概述有時(shí)需要在加載應(yīng)用之前運(yùn)行代碼,有時(shí)希望暫停應(yīng)用初始化,直到完成某些限制之后再執(zhí)行。令牌可以完成這項(xiàng)操作。是一個(gè)函數(shù),在應(yīng)用改程序初始化時(shí)被調(diào)用。可以在類(lèi)的中以的形式來(lái)配置。示例在應(yīng)用啟動(dòng)階段利用校驗(yàn)登錄信息是否有效問(wèn)道系列 概述 ??有時(shí)需要在加載應(yīng)用之前運(yùn)行代碼,有時(shí)希望暫停應(yīng)用初始化,直到完成某些限制之后再執(zhí)行。APP_INITIALIZER令牌可以完成這項(xiàng)操作。??APP_...
摘要:要做到這一點(diǎn),有三個(gè)必不可少的步驟,分別是創(chuàng)建根路由模塊定義路由配置添加指令標(biāo)簽。下面的代碼以路由配置為參數(shù),通過(guò)調(diào)用方法來(lái)創(chuàng)建根路由模塊,并將其導(dǎo)入到應(yīng)用的根模塊中。 概述 路由所要解決的核心問(wèn)題就是通過(guò)建立URL和頁(yè)面的對(duì)應(yīng)關(guān)系,使得不同的頁(yè)面可以用不同的URL來(lái)表示。 Angular路由的核心工作流程圖 showImg(https://segmentfault.com/img/b...
摘要:通常寫(xiě)代碼時(shí)我們無(wú)需主動(dòng)調(diào)用或是因?yàn)樵谕獠繉?duì)我們的回調(diào)函數(shù)做了包裝。類(lèi)似的不只是這些事件回調(diào)函數(shù),還有等。常量依舊會(huì)重復(fù)檢查。會(huì)檢查中有沒(méi)有一個(gè)名為的成員。 TL;DR 臟檢查是一種模型到視圖的數(shù)據(jù)映射機(jī)制,由 $apply 或 $digest 觸發(fā)。 臟檢查的范圍是整個(gè)頁(yè)面,不受區(qū)域或組件劃分影響 使用盡量簡(jiǎn)單的綁定表達(dá)式提升臟檢查執(zhí)行速度 盡量減少頁(yè)面上綁定表達(dá)式的個(gè)數(shù)(單次綁定...
閱讀 2078·2021-11-23 10:13
閱讀 2788·2021-11-09 09:47
閱讀 2737·2021-09-22 15:08
閱讀 3312·2021-09-03 10:46
閱讀 2230·2019-08-30 15:54
閱讀 909·2019-08-28 18:09
閱讀 2429·2019-08-26 18:26
閱讀 2341·2019-08-26 13:48