91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

angular2 組件之間如何通過service互相傳遞

發布時間:2021-07-23 10:45:13 來源:億速云 閱讀:199 作者:小新 欄目:web開發

這篇文章主要介紹angular2 組件之間如何通過service互相傳遞,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

母組件傳值給子組件

母組件通過service傳值給子組件,很簡單,聲明一個service

@Injectable()
export class ToolbarTitleService {
 title:string;
}

然后在母組件中依賴注入

@Component({
 selector: 'admin',
 templateUrl: './admin.component.html',
 styleUrls: ['./admin.component.scss'],
 providers: [ToolbarTitleService],
})

子組件中直接聲明即可使用

export class RoleListComponent implements OnInit {
 constructor(private toolbarTitleService:ToolbarTitleService) {
   console.log(this.toolbarTitleService.title);
   }
 ngOnInit() { }
}

子組件傳值給母組件

那么我想反過來傳值回去該怎么辦,即使我在子組件注入了service,母組件也不會在我修改了servie的值之后得到通知,這時候就需要用到subscribe

service代碼:

import { Injectable } from '@angular/core';
import { Subject } from 'rxjs/Subject';

@Injectable()
export class ToolbarTitleService {
 private titleSource = new Subject();
 //獲得一個Observable
 titleObservable =this.titleSource.asObservable();
 constructor() { }
 //發射數據,當調用這個方法的時候,Subject就會發射這個數據,所有訂閱了這個Subject的Subscription都會接受到結果
 emitTitle(title: string) {
  this.titleSource.next(title);
 }
}

子組件代碼:

import { ToolbarTitleService } from './../../common/toolbar-title.service';
import { Component, OnInit ,Output,EventEmitter} from '@angular/core';

@Component({
 selector: 'role-list',
 templateUrl: 'role-list.component.html',
 styleUrls: ['./role-list.component.css'],
 providers: [],
})

export class RoleListComponent implements OnInit {
 constructor(private toolbarTitleService:ToolbarTitleService) {
   //調用方法,發射數據
   this.toolbarTitleService.emitTitle('角色列表');
   }
 ngOnInit() { }
}

母組件:

import { Component, OnInit } from '@angular/core';
import { ToolbarTitleService } from "app/common/toolbar-title.service";
import { Subscription } from "rxjs/Subscription";

@Component({
 selector: 'admin',
 templateUrl: './admin.component.html',
 styleUrls: ['./admin.component.scss'],
 providers: [ToolbarTitleService],
})

export class AdminComponent implements OnInit {
 title: string;
 subscription: Subscription;
 constructor(private toolbarTitleService: ToolbarTitleService) {
  //使用subscribe來訂閱,當數據被發射出來的時候,這里就會接收到結果
  this.subscription = this.toolbarTitleService.titleObservable.subscribe(src => console.log('得到的title:' + src));

 }

 ngOnInit() {

 }
 //銷毀的時候需要取消訂閱,因為訂閱之后會一直處于觀察者狀態,不取消會導致泄露
 ngOnDestroy() {
  this.subscription.unsubscribe();
 }
}

以上是“angular2 組件之間如何通過service互相傳遞”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长兴县| 喀喇沁旗| 东阳市| 隆德县| 云霄县| 招远市| 泰和县| 秦皇岛市| 托克逊县| 儋州市| 满洲里市| 达日县| 织金县| 桐乡市| 遂平县| 会泽县| 阜新市| 黄山市| 福鼎市| 德保县| 礼泉县| 扶风县| 买车| 朝阳区| 井陉县| 塔河县| 三门峡市| 通城县| 夏津县| 金华市| 临夏市| 深圳市| 肥西县| 柞水县| 怀集县| 通化县| 金平| 新泰市| 阿合奇县| 邹平县| 图木舒克市|