Вам не нужно отправлять функцию в качестве параметра в сервисе. Если вы действительно хотите сделать это с помощью оператора if, вы должны сделать это внутри компонента.
Таким образом, вы можете сохранить ваш сервис красивым и чистым, как это:
import {Injectable} from '@angular/core';
import {ToastController,AlertController,NavController} from '@ionic/angular';
@Injectable({
providedIn: 'root'
})
export class GeneralFunctionService {
constructor(
public alertCtrl: AlertController,
public toastCtrl: ToastController,
) {}
async showErrorMsg(toastCtrl, msg) {
let toast = await toastCtrl.create({
message: msg,
duration: 2000,
position: 'top'
});
await toast.present();
window.location.reload();
}
async showAlertError() {
let alert = await this.alertCtrl.create({
message: 'Login Sucessful',
buttons: [{
text: 'OK',
handler: () => {
window.location.reload();
}
}, ]
});
await alert.present();
}
}
Тогда в вашем компонентеВы должны импортировать сервис и использовать его.
contructor(generalFunctionServ: GeneralFunctionService) {}
showMessage(param){
if (param === 'showErrorMsg') {
this.generalFuncServ.showErrorMsg();
} else if (param === 'showAlertError') {
this.generalFuncServ.showAlertError();
}
}
Я не уверен, откуда вы берете свой параметр, так что эта часть зависит от вас.