サービスを作成し、アラートを使用するコンポーネントにそのサービスをインポートする必要があります。これは最近、Ionic2アプリケーションでこれを行いました。このようなものはうまくいくはずです。
import { Injectable, Inject } from '@angular/core';
import { AlertController } from 'ionic-angular';
@Injectable()
export class AlertLoader {
constructor(public alertCtrl: AlertController){}
complexAlert(title, subTitle, buttonObj){
let Alert = this.alertCtrl.create({
title: title,
subTitle: subTitle,
buttons: buttonObj
})
console.log(Alert);
Alert.present();
}
}
このコンポーネントをコンポーネントで使用するには、そのコンポーネントをインポートして呼び出します。あなたのコンストラクタにそれを追加することを忘れないでください!
this.alertLoader.complexAlert('Title', 'subtitle', buttonObj)
あなたが他の場所で警告を使用したい場合、それは一定であるか、別のファイルに含めて、それをインポートします場合は、その情報をハードコードすることができます。
希望すると便利です。
興味深い...これはUXの観点から私が欲しいものを達成するだろうと思うが、もっと良い方法があるのだろうかと思う。カスタムアラート/モーダルのサービスを要求することは、最良の設計選択肢のようには見えません。 –
参照する一般的なサービスファイルがあるかもしれません。そのファイルに含めるとインポートを最小限に抑えることができますが、多目的にするための簡単な方法を発見できません。あなたが見つけたら、私が見ることができるようにここに投稿してください! :) –
サービスレイヤーがビューレイヤーとやり取りしてはならない理由として、推論でここでは別のソリューションが提案されています。https://forum.ionicframework.com/t/creat-custom-reusable-alert-or-modal-component/76539/2 –