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

angular2 組件之間通過service互相傳遞的實例

 更新時間:2018年09月30日 09:21:09   作者:玩玩玩玩玩了  
今天小編就為大家分享一篇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() { }
 //發(fā)射數據,當調用這個方法的時候,Subject就會發(fā)射這個數據,所有訂閱了這個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) {
   //調用方法,發(fā)射數據
   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來訂閱,當數據被發(fā)射出來的時候,這里就會接收到結果
  this.subscription = this.toolbarTitleService.titleObservable.subscribe(src => console.log('得到的title:' + src));

 }

 ngOnInit() {

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

以上這篇angular2 組件之間通過service互相傳遞的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論

高碑店市| 新兴县| 社旗县| 辛集市| 宁都县| 阿坝县| 巴彦淖尔市| 朝阳市| 江都市| 安阳县| 衡南县| 仪陇县| 保靖县| 攀枝花市| 将乐县| 海盐县| 绥芬河市| 海城市| 抚远县| 北京市| 淳化县| 名山县| 怀化市| 梁山县| 甘南县| 娱乐| 定日县| 台山市| 林口县| 富平县| 南昌县| 女性| 娄底市| 广西| 常宁市| 平阳县| 木里| 建始县| 嘉荫县| 灵山县| 怀柔区|