国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

問道Angular——APP_INITIALIZER

yunhao / 2061人閱讀

摘要:概述有時(shí)需要在加載應(yīng)用之前運(yùn)行代碼,有時(shí)希望暫停應(yīng)用初始化,直到完成某些限制之后再執(zhí)行。令牌可以完成這項(xiàng)操作。是一個(gè)函數(shù),在應(yīng)用改程序初始化時(shí)被調(diào)用??梢栽陬惖闹幸缘男问絹砼渲谩J纠趹?yīng)用啟動(dòng)階段利用校驗(yàn)登錄信息是否有效問道系列

概述

??有時(shí)需要在加載應(yīng)用之前運(yùn)行代碼,有時(shí)希望暫停應(yīng)用初始化,直到完成某些限制之后再執(zhí)行。APP_INITIALIZER令牌可以完成這項(xiàng)操作。
??APP_INITIALIZER是一個(gè)函數(shù),在應(yīng)用改程序初始化時(shí)被調(diào)用??梢栽贏ppModule類的providers中以factory的形式來配置。適合加載簡(jiǎn)單的數(shù)據(jù)或簡(jiǎn)單的校驗(yàn)。
??factory是一個(gè)返回值為promise的函數(shù)。

示例

??在應(yīng)用啟動(dòng)階段利用jwt校驗(yàn)登錄信息是否有效
load.service.ts

import {Injectable, Injector} from "@angular/core";
import {JwtHelperService} from "@auth0/angular-jwt";
import {Observable, of} from "rxjs";
import {Router} from "@angular/router";

@Injectable({
  providedIn: "root"
})
export class LoadService {

  constructor(private jwtHelper: JwtHelperService,
              private injector: Injector) {
  }

  load(): Promise {
    return new Promise((resolve, reject) => {
      return this.checkUser()
        .subscribe(res => {
          if (res) {
            setInterval(() => {
              this.checkStatus();
            }, 1000 * 300);
          } else {
            this.goLogin();
          }
          resolve(res);
        }, err => {
          reject(err);
        });
    });
  }

  isTokenExpired(token: string = "access_token") {
    const jwtStr = localStorage.getItem(token);
    return jwtStr ? this.jwtHelper.isTokenExpired(jwtStr) : true;
  }

  checkUser(token: string = "access_token"): Observable {
    if (!this.isTokenExpired()) {
      return of(true);
    } else {
      localStorage.removeItem(token);
      return of(false);
    }
  }

  checkStatus() {
    if (this.isTokenExpired()) {
      this.goLogin();
    }
  }

  goLogin() {
    const router = this.injector.get(Router);
    router.navigate(["/user/login"]);
  }

}

app.module.ts

export function loadFactory(loadService: LoadService): Function {
  return () => loadService.load();
}

@NgModule({
  providers: [
    {
      provide: APP_INITIALIZER,
      useFactory: loadFactory,
      deps: [LoadService, Injector],
      multi: true
    }
  ]
})

???問道Angular系列???

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/99078.html

相關(guān)文章

  • [譯] 監(jiān)聽 Angular 啟動(dòng)過程

    摘要:比如下面代碼讓初始化延遲秒執(zhí)行當(dāng)然你可以定義多個(gè)回調(diào)函數(shù)另外一個(gè)可以監(jiān)聽程序啟動(dòng)過程的地方就是使用方法這里你可以拿到被啟動(dòng)模塊的對(duì)象引用,并通過該對(duì)象拿到和。 原文鏈接: Hooking into the Angular bootstrap process Angular 提供了一些機(jī)制來監(jiān)聽框架初始化過程,本文主要探索如何使用這些機(jī)制。 APP_BOOTSTRAP_LISTENER...

    cjie 評(píng)論0 收藏0
  • 我理解的 core 目錄

    摘要:只需引入一次的什么是項(xiàng)目中只需要引入一次的舉個(gè)例子,全局錯(cuò)誤處理根路由數(shù)據(jù)預(yù)加載請(qǐng)求攔截器等。更漂亮的是為我們提供了攔截器接口,我們只管開發(fā)攔截器邏輯功能,調(diào)用及使用全部控制權(quán)都在框架內(nèi)。 ... 過了一遍 Angular 文檔 的小伙伴大致都會(huì)記得最佳實(shí)踐中提到過的有關(guān)CoreModule的一些解釋和說明,其實(shí)關(guān)于名字的命名不是強(qiáng)制性的,只要團(tuán)隊(duì)中一致 pass,你把它命名為XXXM...

    callmewhy 評(píng)論0 收藏0
  • 問道Angular——Angular刷新當(dāng)前頁(yè)面

    摘要:默認(rèn)情況下,路由器將會(huì)忽略這次導(dǎo)航。但這樣會(huì)阻止類似于刷新按鈕的特性。使用該選項(xiàng)可以配置導(dǎo)航到當(dāng)前時(shí)的行為。使用配置實(shí)際上不會(huì)重新加載路由,只是重新出發(fā)掛載在路由器上的事件。配置有三個(gè)值僅在路由參數(shù)更改時(shí)觸發(fā)。 onSameUrlNavigation ??從angular5.1起提供onSameUrlNavigation來支持路由重新加載。、 ??有兩個(gè)值reload和ignore。默...

    RyanHoo 評(píng)論0 收藏0
  • 問道Angular——Angular設(shè)置別名alias

    摘要:設(shè)置別名在根目錄下中添加和訪問環(huán)境變量添加了別名,以便能夠從應(yīng)用程序中的任何位置輕松訪問環(huán)境變量。它適用于所有指定的環(huán)境,因?yàn)樗鼤?huì)根據(jù)傳遞給命令的標(biāo)志自動(dòng)解析正確的環(huán)境文件。 設(shè)置別名 ??在根目錄下tsconfig.json中添加baseUrl和paths { compilerOptions: { baseUrl: src, paths: { @app...

    Neilyo 評(píng)論0 收藏0
  • 問道Angular——Angular5/6/7項(xiàng)目添加熱更新(HMR)功能

    摘要:提供以上熱更新功能使用初始化項(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...

    Aceyclee 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<