zoukankan      html  css  js  c++  java
  • ngx通讯之可观察对象实现

    1.公共服务

    //test.service.ts
    
    import {Injectable} from '@angular/core';
    import {Subject} from 'rxjs/Subject';
    
    @Injectable()
    export class TestService{
      missionAnnouncedSource = new Subject();
      missionAnnounced$:any = this.missionAnnouncedSource.asObservable();
      announceMission(misson:any){
        this.missionAnnouncedSource.next(mission)
      }
    } 

    2.信息发出者

    //test.component.ts  (发送可观察对象)
    import {TestService} from './test.service';
    
    export class TestComponent implements OnInit {
      constructor(private ts: TestService) { }
      
      ngOnInit(){
        this.test();
      }
      
      test(){  //发送信息
        this.ts.announceMission("hello,it is just a test file")
      }
    }

    3.信息接收者

    //test2.component.ts  (接收可观察对象)
    import {TestService} from './test.service';
    import {Subscription} from 'rxjs/Subscription';
    
    export class Test2Component implements OnInit,OnDestory {
      subscription:Subscription;
      message:any;
      constructor(private ts: TestService) { 
          this.subscription = ts.missionAnnounced$.subscribe(
            mission => {
              this.message = mission  //接收信息
            }
        )
      }
      
      ngOnInit(){
       
      }
      
      ngOnDestory(){ //取消订阅
        this.subscription.unsubscribe();
      }
    }
  • 相关阅读:
    利用序列化进行深度克隆
    原型链
    本地储存cookie,localStorage,sessionStorage
    ES6创建类
    hexo基本命令
    mouseent和mouseover的区别
    Event
    offset,client,scroll
    字符串的常用方法
    数组去重
  • 原文地址:https://www.cnblogs.com/sghy/p/8334857.html
Copyright © 2011-2022 走看看