問題は
です。Observableを購読しているコンポーネントがあります。 myValue
の値は、ブラウザウィンドウ上でマウスを動かすと、テンプレート内で更新されます。角度コンポーネントは、マウスを移動した後にのみ表示される変数を表示します。
最も奇妙なことは、2つがconsole.log
で正常に動作していることです。
- 私はテンプレートがまだ私はマウスを動かす
- 「はdefaultValue」の値を示しており、テンプレートショーコンソール
- に更新された値を見ることができます
- 静的マウスを保つページをリロード更新された値はすでにコンソールで表示されていました。
は、私はそれがChangeDetectorRef
と.detectChanges()
で動作させることに成功し、それが問題だ場所がわからないときAngularJSで$scope.apply()
を使用してのように間違っているようです。
私-component.component.ts
import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { Subscription } from 'rxjs/Subscription';
import { HelperService } from 'path';
@Component({
selector: 'my-selector',
templateUrl: 'my-component.component.html'
})
export class MyComponent implements OnDestroy, OnInit {
myValue: string;
private subscription: Subscription;
constructor(
private helperService: HelperService
) {
//
}
ngOnInit() {
this.myValue = 'defaultValue';
this.subscription = this.helperService.getNewValue$().subscribe((newValue) => {
console.log('pre', this.myValue);
this.myValue = newValue;
console.log('post', this.myValue);
});
}
ngOnDestroy() {
if (this.subscription !== undefined) {
this.subscription.unsubscribe();
}
}
}
helper.service.ts
getNewValue$(): Observable<string> {
return Observable.fromPromise(this.methodCallingAThirdPartyLibrary());
}
私-component.component.html
debug: {{ myValue }}
にその内側の呼び出しをラップしようとするでしょう。それはシーケンスベースでデータを送信しますか? – Aravind
HelperService –
から関連コードを追加して質問を編集しました。コンソールには何が印刷されていますか? –