角度事件发射器:如何订阅第三方事件?

时间:2018-03-28 20:49:46

标签: angular angular2-services

我有一个共享服务来管理我在角度4应用程序中的openlayers地图操作。

import { Injectable, EventEmitter } from '@angular/core';

@Injectable()
export class MapService {

  public onMapLoadStart: EventEmitter<any>;

  constructor() {
    this.onMapLoadStart = new EventEmitter();
   }

  populateMapLoadStart = function(event){
    this.onMapLoadStart.emit(event);
  }
}

我在地图组件中使用服务。

    import { Component, OnInit, Output, EventEmitter } from '@angular/core';
    import OlOsm from 'ol/source/osm';
    @Component({
      selector: 'my-map',
      templateUrl: './map.component.html',
      styleUrls: ['./map.component.css']
    })
    export class MapComponent implements OnInit {

      source: OlOsm;

      constructor(private mapService: MapService) { 
        mapService.onMapLoadStart.subscribe(item => this.source.on("tileloadstart", function(){}));??????
      }

      ....
      ...

openlayers source对象有一个名为tileloadstart的事件。我想通过我的地图服务订阅此活动。 Openlayers源事件的工作原理如下:

this.source.on("tileloadstart", function(event){
    console.log(event);
}));

但这不起作用。

0 个答案:

没有答案