"Нет поставщика для AlertController!" npm ионно-угловой - PullRequest
0 голосов
/ 04 ноября 2018

Следующий код предназначен для пользовательского компонента заставки в ионном приложении, где я запросил у сервера токен и личность! Используя «ионно-угловой»: «^ 3.9.2»

import {Component, OnInit} from '@angular/core';
import {BackendService} from "../../services/backend.service";
import {SessionService} from "../../services/session.service";
import {AlertController} from "ionic-angular";

@Component({
    selector: 'app-splash-screen',
    templateUrl: './splash-screen.component.html',
    styleUrls: ['./splash-screen.component.scss']
})

export class SplashScreenComponent implements OnInit {

constructor(private backendService: BackendService,
            private sessionService: SessionService, private alertCtrl: AlertController) {

}

ngOnInit() {

    if (this.sessionService.getBearerToken()) {
        this.requestForIdentity();
    } else {
        this.backendService.Token().subscribe((response: any) => {
            this.sessionService.addAccessToken(response.access_token);
            this.sessionService.addRefreshToken(response.refresh_token);
            this.requestForIdentity();
        }, error => {
            console.log(error)
        })
    }
}

requestForIdentity() {
    this.backendService.GetIdentity().subscribe((response: any) => {
        console.log(response);
        this.showAlert();
    }, error => {
        console.log(error);
    })
}

showAlert() {
    const alert = this.alertCtrl.create({
        title: 'New Friend!',
        subTitle: 'Your friend, Obi wan Kenobi, just accepted your friend request!',
        buttons: ['OK']
    });
    alert.present();
}

}

Теперь, когда личный ответ получен, захотел показать простое оповещение! но согласно документации API, я вставил AlertController в SplashScreenComponent и при сборке, произошла следующая ошибка! не мог найти какое-либо решение для поиска в интернете.

Ошибка AlertController! Нет поставщика для AlertController

SplashScreenComponent находится внутри модуля SplashScreen, который является лениво загруженным модулем.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2018

согласно моему требованию, я использовал 'AlertController от ionic-angular, ответ @ NinjaJami помог мне более конкретно разобраться в проблеме!

Остановлено с использованием «ионно-угловых» и заменено,

import {AlertController} from "ionic-angular";

с

import {AlertController} from "@ionic/angular";

и заменены

showAlert() {
    const alert = this.alertCtrl.create({
        title: 'New Friend!',
        subTitle: 'Your friend, Obi wan Kenobi, just accepted your friend request!',
        buttons: ['OK']
    });
    alert.present();
}

с:

showAlert() {
    const alert: any = this.alertCtrl.create({
        title: 'New Friend!',
        subTitle: 'Your friend, Obi wan Kenobi, just accepted your friend request!',
        buttons: ['OK']
    });

    alert.then((_alert: any)=> {
        _alert.present();
    })
}

объяснение: this.alertCtrl.create () возвращает Promise, поэтому не может вызвать напрямую alert.present (), поэтому с помощью alert.then () смог вызвать настоящее ( ) функция.

Особая благодарность @ NinjaJami

0 голосов
/ 04 ноября 2018

убедитесь, что вы импортировали IonicModule

 imports:      [ IonicModule.forRoot(),BrowserModule, FormsModule ],

Рабочая демоверсия

https://stackblitz.com/edit/ionic-error?file=src/app/app.component.ts

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