Angular2でSPAなシステム開発:Serviceのデータを同期する方法/Eventをsubscriveする方法

Angular2でSPAなシステム開発:serviceのデータを同期するならPromiseよりもEmitter、EmitterよりもObservable誤用ということなのですが、Ionic2(というかAngular2)のserviceのデータを同期させるのは、EventEmitterを使うのがわかりやすいです。コードを読む人もObservableよりわかりやすいのでは無いでしょうか。Lifecycle Hooks – ts 最初はこの中のngAfterContentCheckedとかngAfterViewCheckedを使って、serviceのget系メソッドを実行してみたのですが、初期ページを表示させてその後ページが1回遷移するだけで30回以上このイベントが呼ばれていました。そのたびにメソッドを呼んでいるのは余りにも無駄でパフォーマンスの無駄が大きいと思われました。

import {Injectable, EventEmitter} from 'angular2/core';@Injectable()export class SettingsService {  public hello:string = 'hello';  helloChange: EventEmitter = new EventEmitter();  constructor() {}  getHello(){    return this.hello;  }  setHello(str:string){    this.hello = str;    this.helloChange.emit(this.hello);  }}

これがemitする側のサービス。

    this._helloSubscription = _settingsService.helloChange.subscribe((value) => {      this.myhello = value;    });

受ける側のページコンポーネント。これだけで同期できます。参考にしたのはこのディスカッション。最初の方のドットルールでは値を反映させることはできませんでした。javascript – updating variable changes in components from a service with angular2 – Stack Overflow “””

コメントをどうぞ

メールアドレスが公開されることはありません。 が付いている欄は必須項目です