最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Angular CDK實現(xiàn)一個Service彈出Toast組件功能

 更新時間:2021年07月28日 09:20:43   作者:青城同學(xué)  
本文主要寫用cdk實現(xiàn)一個簡單的Toast組件,使用的是cdk中的overlay模塊,需要手動安裝環(huán)境,具體安裝方法及相關(guān)實現(xiàn)代碼跟隨小編一起看看吧

在Angular中,官方團隊在開發(fā)Material組件庫的同時,順手做了一套Component dev kit,也就是在Angular世界中大名鼎鼎的CDK,這套工具包提供了非常多的前端開發(fā)的通用功能。Angular的知名組件庫幾乎都依賴了這套開發(fā)包。比如ANT,PrimeNG等。

本文主要寫用cdk實現(xiàn)一個簡單的Toast組件,使用的是cdk中的overlay模塊。

1.環(huán)境安裝

cdk不是angular的默認(rèn)模塊,需要手動安裝 yarn add @angular/cdk

在app.module中引入cdk中的OverlayModule

import { OverlayModule } from '@angular/cdk/overlay';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    OverlayModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

2.創(chuàng)建Toast組件和ToastService

  • 使用ng g c Toast命令快速創(chuàng)建一個組件模版
  • 使用ng g s Toast創(chuàng)建一個Service的模版

2.1編寫Toast組件和樣式

ToastComponent

<div class="q-toast">
    <div class="q-toast-mask"></div>
    <p class="q-toast-msg">{{msg}}</p>
</div>

.q-toast {
  padding: .2rem .5rem;
  width: 5rem;
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  

  .q-toast-mask {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #000;
    opacity: .8;
    border-radius: 2rem;
  }

  .q-toast-msg {
    color: white;
    z-index: 999;
  }
}

ToastService

import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
import { ComponentPortal } from '@angular/cdk/portal';
import { Injectable, InjectionToken, Injector } from '@angular/core';
import { ToastComponent } from './toast.component';

@Injectable({
  providedIn: 'root'
})
export class ToastService {

  constructor(private overlay: Overlay) { }

  Show(msg: string) {
    const config = new OverlayConfig();
    const positionStrategy = this.overlay.position()
      .global().centerVertically().centerHorizontally();
    config.positionStrategy = positionStrategy;
    let overlayRef = this.overlay.create(config);
    const inject = Injector.create({
      providers: [
        {
          provide: Toast_Ref,
          useValue: overlayRef
        },
        {
          provide: Toast_Msg,
          useValue: msg
        }
      ]
    })
    console.log(inject.get<string>(Toast_Ref))
    let partal = new ComponentPortal(ToastComponent, null, inject);
    overlayRef.attach(partal)
    setTimeout(() => {
      overlayRef.detach()
      overlayRef.dispose();
    }, 2000);
  }

}

export const Toast_Ref = new InjectionToken<{}>('Toast_Ref');
export const Toast_Msg = new InjectionToken<{}>('Toast_Msg');

使用Toast

編寫好Service后,只需要Angular會默認(rèn)注入到root模塊,只需要在需要彈出Toast的組件的構(gòu)造方法寫上對應(yīng)的ToastService就可以正常運行了。

export class AppComponent {
  constructor(private toast:ToastService) {
  }
  test() {

    this.toast.Show('hello cdk!')
  }
}

gif效果圖

到此這篇關(guān)于使用Angular CDK實現(xiàn)一個Service彈出Toast組件的文章就介紹到這了,更多相關(guān)Angular CDK 實現(xiàn)Toast組件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在Angular項目使用socket.io實現(xiàn)通信的方法

    在Angular項目使用socket.io實現(xiàn)通信的方法

    這篇文章主要介紹了在Angular項目使用socket.io實現(xiàn)通信的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • 深入淺析AngularJS中的module(模塊)

    深入淺析AngularJS中的module(模塊)

    我們所說的模塊,是你的AngularJS應(yīng)用程序的一個組成部分,它可以是一個Controller,也可以是一個Service服務(wù),也可以是一個過濾器(Filter),也可以是一個directive(指令)等等…都是屬于一個模塊,本文給大家介紹AngularJS中的module(模塊) ,感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • RequireJs的使用詳解

    RequireJs的使用詳解

    本文主要介紹了RequireJs的使用。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • AngularJS實現(xiàn)樹形結(jié)構(gòu)(ztree)菜單示例代碼

    AngularJS實現(xiàn)樹形結(jié)構(gòu)(ztree)菜單示例代碼

    這篇文章運用示例代碼給大家詳細介紹了利用AngularJS如何實現(xiàn)樹形結(jié)構(gòu)(ztree)菜單,文中僅用了幾行AngularJS代碼就是了這個功能,對大家日常開發(fā)很有幫助,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-09-09
  • Angular父組件調(diào)用子組件的方法

    Angular父組件調(diào)用子組件的方法

    組件是一種特殊的指令,使用更簡單的配置項來構(gòu)建基于組件的應(yīng)用程序架構(gòu).這篇文章主要介紹了Angular組件——父組件調(diào)用子組件方法,需要的朋友可以參考下
    2018-04-04
  • Angular實現(xiàn)svg和png圖片下載實現(xiàn)

    Angular實現(xiàn)svg和png圖片下載實現(xiàn)

    這篇文章主要介紹了Angular實現(xiàn)svg和png圖片下載實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Angular?Component屬性綁定target和attr.target的區(qū)別分析

    Angular?Component屬性綁定target和attr.target的區(qū)別分析

    這篇文章主要介紹了Angular?Component屬性綁定target和attr.target的區(qū)別分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • 詳解AngularJS中ng-src指令的使用

    詳解AngularJS中ng-src指令的使用

    這篇文章給大家詳細介紹了AngularJS中ng-src指令的使用,對大家學(xué)習(xí)AngularJS具有一定參考價值,有需要的朋友們可以參考借鑒。
    2016-09-09
  • AngularJs bootstrap搭載前臺框架——js控制部分

    AngularJs bootstrap搭載前臺框架——js控制部分

    本文主要介紹AngularJs bootstrap搭載前臺框架js控制部分的資料,這里有實現(xiàn)代碼,有興趣的小伙伴可以參考下
    2016-09-09
  • AngularJS ng-bind-template 指令詳解

    AngularJS ng-bind-template 指令詳解

    本文注意介紹AngularJS ng-bind-template 指令,這里把相關(guān)資料整理了一下,并附實例代碼,有需要的小伙伴可以參考下
    2016-07-07

最新評論

明光市| 泾川县| 祁东县| 阿拉善左旗| 共和县| 攀枝花市| 秭归县| 翁源县| 大竹县| 灵武市| 和静县| 阿合奇县| 刚察县| 马关县| 安新县| 湟中县| 子洲县| 格尔木市| 肥城市| 丰县| 澎湖县| 仙居县| 杂多县| 四平市| 宽城| 克东县| 宜川县| 新密市| 买车| 株洲市| 大田县| 正宁县| 乐清市| 凤冈县| 忻州市| 通许县| 汉中市| 黔西| 中牟县| 平阴县| 晴隆县|