0

ionic 2 と angularjs を使用したアプリのいくつかのビューで、すべてのページでいくつかのイオン トースト メッセージを使用しています。これらのトースト メッセージは、すべてのページで同じです。

すべての TS ファイルで同じ関数を作成するのではなく、注入可能なサービスなどでこれらのメッセージを定義することは可能ですか?

4

1 に答える 1

6

@Austin が言うように、ロジックをinjectable service:内に配置する必要があります。

import {Injectable} from "@angular/core";

@Injectable()
export class ToastService {
  constructor(...) {
      // ...
  }

  showToast() {
      //....
  }
}

次に、サービスの同じインスタンスがアプリケーション全体で使用されるようにするために、それをファイルionicBootstrapの に含めるだけです。app.ts

ionicBootstrap(MyApp, [ToastService], {});

最後に、次のようにして、必要な場所で使用できますcomponent

import {Component} from '@angular/core';
import {ToastService} from './toastService';

@Component({
  templateUrl: 'build/test.html'

})
export class TestPage {
  constructor(private toastService: ToastService) {
    // ...
  }

  showMessage() {  
      // Use the service to show the message
      this.toastService.showToast();
  }
}
于 2016-06-30T19:16:08.373 に答える