<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        Angular5.0 子組件通過service傳遞值給父組件的方法

        來源:懂視網 責編:小采 時間:2020-11-27 22:11:38
        文檔

        Angular5.0 子組件通過service傳遞值給父組件的方法

        Angular5.0 子組件通過service傳遞值給父組件的方法:一、引言 我們使用ngx-loading,需要在app.component.html上寫模板,綁定一個布爾值loading.此時如果我們想在其他組件中使用這個loading控件,就需要在每個組件的html重新寫模板,這就顯得累贅了。在此,我們以ngx-loading為例,展示子組件如何通
        推薦度:
        導讀Angular5.0 子組件通過service傳遞值給父組件的方法:一、引言 我們使用ngx-loading,需要在app.component.html上寫模板,綁定一個布爾值loading.此時如果我們想在其他組件中使用這個loading控件,就需要在每個組件的html重新寫模板,這就顯得累贅了。在此,我們以ngx-loading為例,展示子組件如何通

        一、引言

        我們使用ngx-loading,需要在app.component.html上寫模板,綁定一個布爾值loading.此時如果我們想在其他組件中使用這個loading控件,就需要在每個組件的html重新寫模板,這就顯得累贅了。在此,我們以ngx-loading為例,展示子組件如何通過service改變app組件中的布爾值loading。

        // app.component.html
         <ngx-loading [show]="loading" [config]="{ backdropBorderRadius: '14px' }"></ngx-loading>
        

        二、實現

        1.安裝ngx-loading 詳情點擊

        npm install --save ngx-loading

        2.Import the LoadingModule

        import { BrowserModule } from '@angular/platform-browser';
        import { NgModule } from '@angular/core';
        import { CoreModule } from './core/core.module';
        import { LoadingModule } from 'ngx-loading';
        
        @NgModule({
         //...
         imports: [
         //...
         LoadingModule
         ],
         //...
        })
        export class AppModule { }
        
        

        3.在app.component.html寫ngx-loading模板

        // app.component.html
         <ngx-loading [show]="loading" [config]="{ backdropBorderRadius: '14px' }"></ngx-loading>
        

        4.新建一個UtilsService

        import {Injectable} from '@angular/core';
        import {Subject} from 'rxjs/Subject';
        
        @Injectable()
        export class UtilsService {
        
         private loadingSource = new Subject();
         // 獲得一個Observable;
         loadingObservable = this.loadingSource.asObservable();
        
         // 發射數據,當調用這個方法的時候,Subject就會發射這個數據,所有訂閱了這個Subject的Subscription都會接受到結果
         // loading true為啟用loading,false為關閉loading
         emitBoolean(loading: boolean) {
         this.loadingSource.next(loading);
         }
        }
        
        

        5.在app.component.ts使用subscribe來訂閱,當數據被發射出來的時候,這里就會接收到結果

        import {Component, OnDestroy, OnInit} from '@angular/core';
        import {Subscription} from "rxjs/Subscription";
        import {UtilsService} from "./service/utils.service";
        
        @Component({
         selector: 'app-root',
         templateUrl: './app.component.html',
         styleUrls: ['./app.component.css']
        })
        export class AppComponent implements OnInit, OnDestroy {
        
         loading = false;
         subscription: Subscription;
        
         constructor(public utils: UtilsService) {
         // 使用subscribe來訂閱,當數據被發射出來的時候,這里就會接收到結果
         this.subscription = this.utils.loadingObservable.subscribe(loading => this.loading = Boolean(loading));
         }
        
         ngOnInit() {
         }
        
         /* 銷毀的時候需要取消訂閱,因為訂閱之后會一直處于觀察者狀態,不取消會導致泄露*/
         ngOnDestroy() {
         this.subscription.unsubscribe();
         }
        
        }
        
        

        6.在其他子組件需要啟用或關閉loading時,只需要一行代碼。

        constructor( private utils: UtilsService) {
        
         }
        this.utils.emitBoolean(true); // 啟用loading
        this.utils.emitBoolean(false); // 關閉loading
        
        

        7.額外方法:在子組件注入AppComponent,簡單粗暴,但不推薦……

         constructor(public appComponent: AppComponent) {
         
         }
        this.appComponent.loading = true; // 啟用loading
        this.appComponent.loading = false; // 關閉loading
        

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        Angular5.0 子組件通過service傳遞值給父組件的方法

        Angular5.0 子組件通過service傳遞值給父組件的方法:一、引言 我們使用ngx-loading,需要在app.component.html上寫模板,綁定一個布爾值loading.此時如果我們想在其他組件中使用這個loading控件,就需要在每個組件的html重新寫模板,這就顯得累贅了。在此,我們以ngx-loading為例,展示子組件如何通
        推薦度:
        標簽: 5.0 組件的 組件傳
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲福利视频一区二区| 久久精品无码一区二区三区免费| 国产免费AV片无码永久免费| 亚洲狠狠色丁香婷婷综合| 最近免费中文字幕大全| 亚洲人成自拍网站在线观看| 久久精品网站免费观看| 亚洲色偷偷综合亚洲av78 | 外国成人网在线观看免费视频 | 亚洲精品美女在线观看| 18以下岁毛片在免费播放| 亚洲一区二区三区播放在线| 国产成人无码免费看视频软件 | 亚洲婷婷在线视频| 最近最好的中文字幕2019免费 | 57pao国产成视频免费播放| 亚洲啪啪免费视频| 国产小视频在线免费| 中文字幕在线免费看线人| 久久夜色精品国产噜噜亚洲AV| 久久精品国产免费观看| 免费国产叼嘿视频大全网站| 亚洲av鲁丝一区二区三区| 日本阿v免费费视频完整版| 亚洲精品中文字幕| 国产亚洲精品国看不卡| 最近中文字幕电影大全免费版| 亚洲色大成网站www久久九| 久久综合亚洲色HEZYO国产| 2022久久国产精品免费热麻豆| 亚洲最大无码中文字幕| 亚洲成A人片在线观看中文| 无码囯产精品一区二区免费| 亚洲欧美熟妇综合久久久久| 亚洲精品成人片在线播放 | 中文字幕在线观看免费视频| 亚洲GV天堂无码男同在线观看| 中文字幕精品无码亚洲字| 99久久精品日本一区二区免费| 免费人成大片在线观看播放| 亚洲bt加勒比一区二区|