<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
        主站蜘蛛池模板: 亚洲欧洲∨国产一区二区三区| 国产精品免费电影| 亚洲va无码va在线va天堂| 国产免费内射又粗又爽密桃视频| 国产免费人视频在线观看免费| 亚洲精华国产精华精华液好用| 韩国欧洲一级毛片免费| 337P日本欧洲亚洲大胆精品| www亚洲精品少妇裸乳一区二区| 成人免费网站视频www| 久久久久亚洲精品天堂久久久久久| 一本到卡二卡三卡免费高| 亚洲人成亚洲人成在线观看| 一个人看的www免费视频在线观看 一个人免费视频观看在线www | 亚洲人色婷婷成人网站在线观看| 国产在线观看无码免费视频| 亚洲国产二区三区久久| 91热久久免费精品99| 亚洲一区二区久久| 国产免费AV片无码永久免费| 国产午夜无码片免费| 噜噜噜亚洲色成人网站∨| 国产桃色在线成免费视频| 亚洲Av永久无码精品黑人| 久久亚洲国产精品123区| 精品亚洲永久免费精品| 2020久久精品亚洲热综合一本 | 亚洲美女在线国产| 精品无码无人网站免费视频| 亚洲真人无码永久在线观看| 亚洲免费日韩无码系列| 在线观看的免费网站无遮挡 | 亚洲国产成人手机在线观看 | 亚洲综合婷婷久久| 四虎永久免费观看| 国产精成人品日日拍夜夜免费| 亚洲制服在线观看| 亚洲人成在线播放网站| 久久精品免费一区二区喷潮| 成人无码精品1区2区3区免费看| 亚洲精品二三区伊人久久|