Ошибка создания производственной сборки приложения IONIC Angular8 - PullRequest
0 голосов
/ 18 октября 2019

Мое приложение построено с использованием Ionic4 и Angular 8. Оно создает службу для alertcontroller и toastcontroller, и оба они используются конструктором вызовов и применяются к конфигурации Firebase , но когда я собираюпоявляется следующая ошибка.

Кто-нибудь знает источник?

ERROR: Can't resolve all parameters for GeneralFunctionService in 
    /home/dhwani/IONIC/demo/src/app/service/general-function.service.ts:
    ([object Object], [object Object], ?). 

GeneralFunctionService:

import { Injectable } from '@angular/core'; 
import { ToastController, AlertController, NavController } from '@ionic/angular';

@Injectable({ providedIn: 'root' }) 
export class GeneralFunctionService { 
 params: any;

 constructor(
  public alertCtrl: AlertController, 
  public toastCtrl: ToastController, 
  params: string 
 ) {
 // …

1 Ответ

0 голосов
/ 18 октября 2019

Вам не нужно отправлять функцию в качестве параметра в сервисе. Если вы действительно хотите сделать это с помощью оператора 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();
   }
}

Я не уверен, откуда вы берете свой параметр, так что эта часть зависит от вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...