在 ionic 2 angularjs 2 的多个视图之间共享一个函数

Share a function between several views on ionic 2 angularjs 2

在使用 ionic 2 和 angularjs 我的应用程序的几个视图中,我在每个页面上都使用了一些 ionic toast 消息。 这些 toast 消息对于每个页面都是相同的。

是否可以在可注入服务或其他东西中定义这些消息,而不是在所有 TS 文件中创建相同的函数?

就像@Austin 说的,你应该把你的逻辑放在 injectable service:

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

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

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

然后将它包含在您的 app.ts 文件的 ionicBootstrap 中,以确保 在整个应用程序中使用相同的服务实例.

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();
  }
}