我正在使用 Angular 5 和 SignalR 构建应用程序。我创建了一个管理集线器的服务,当有事件从服务器传入时,它会将值放入 BehaviorSubject 私有变量中。有一个只读属性应该放出我可以从组件订阅的 observable。
在组件中,我已经订阅了服务的Observable,但是在属性更新时它仍然没有更新。
我知道“测试”属性正在更新,因为我必须告诉我我收到了来自服务器的配置的警报。
有人能指出我可能遗漏了什么或不完全了解 Angular 如何处理更改检测或我可能如何破坏它吗?
服务:
import { Injectable, Input, Output, EventEmitter, NgZone } from '@angular/core';
import { Http, Response } from '@angular/http';
import 'rxjs/add/operator/map';
import {BehaviorSubject} from 'rxjs/BehaviorSubject';
import { APIModels } from './../../shared/APIModels';
import {Observable} from "rxjs/Observable";
declare var $;
@Injectable()
export class DisplayViewerConfigurationService {
private _displayConfiguration: BehaviorSubject<APIModels.ClientConfigurationModel>;
public readonly displayConfiguraiton: Observable<APIModels.ClientConfigurationModel>;
public hubProxy;
@Input() displayID;
constructor(public http: Http) {
var test = new APIModels.ClientConfigurationModel();
test.Display = new APIModels.DisplayConfig(); …Run Code Online (Sandbox Code Playgroud)