我想,当一个变量发生变化,所以它似乎是观察到这里去 的方式来触发一个事件是我的服务:认购不触发
import { Injectable } from '@angular/core';
import {Ad} from './../ad/ad';
import {Observable} from 'rxjs/Observable';
import { of } from 'rxjs/observable/of';
@Injectable()
export class SearchResultService {
public ads : Ad[] = [];
getAdsObservable(): Observable<Ad[]> {
return Observable.of(this.ads);
}
}
和组件:
import {Component } from '@angular/core';
import {Ad} from './../ad/ad';
import {SearchResultService} from './../search/searchResult.service';
import {Observable} from 'rxjs/Observable';
import { Subscription } from 'rxjs/Subscription';
@Component({
selector: 'map',
template : '
<div #map id="map" class='main_map' ></div>
',
})
export class mapComponent {
obs;
subscription: Subscription;
constructor(
private searchResultService: SearchResultService,
){
this.obs = this.searchResultService.getAdsObservable();
}
ngOnInit(){
this.subscription = this.obs.subscribe(
value => {
console.log('subscribe trigger');
});
}
}
现在的问题是,当searchResultService.ads变化(基本全新广告加载),它不会触发认购
工作,我相信你正在寻找一个rxjs主题(https://github.com/Reactive-Extensions/RxJS/blob /master/doc/gettingstarted/subjects.md)这允许您将值推送给主题,订阅它的任何内容都将监听更改。 – LLai