当前位置: 首页 > 知识库问答 >
问题:

“AlertController没有提供程序!”npm离子角

司寇正志
2023-03-14

以下代码适用于ionic应用程序中的自定义闪屏组件,我已在其中请求服务器获取令牌和身份!使用“ionic角”:“^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文档,我在SplashScreenComponent中注入了AlertController,在构建时,出现了以下错误!无法在internet上找到任何搜索解决方案。

AlertController错误!AlertController没有提供程序

SplashScreen组件位于SplashScreen模块内部,该模块是一个延迟加载的模块。

共有2个答案

墨阳羽
2023-03-14

确保已导入IonicModule

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

工作演示

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

益富
2023-03-14

根据我的要求,我使用的是‘爱奥尼亚角’的AlertController,@NinjaJami的回答帮助我更具体地挖掘了这个问题!

停止使用“ionic angular”并替换,

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

 类似资料:
  • 从angular 4.4升级到5.0,并将所有HttpModule和Http更新到HttpClientModule后,我开始出现此错误。 我还再次添加了HttpModule,以确保这不是由于某些依赖关系造成的,但它并不能解决问题 应用程序内。模块,我已正确设置 我不知道这个错误是从哪里来的,或者我不知道如何去了解它。我也有一个警告(也放在下面),可能是相关的。 警告信息:

  • 我正在使用Yeoman+Angular Generator为我的应用程序,我一直在努力地跑来跑去与Jasmine相处!这就是我被困住的地方。我希望能够在Jasmine测试中使用jQuery选择器。我已经安装了和包。然后我为bower安装了它(我是新来的,我不知道应该为什么安装什么!)。我已经在中手动添加了路径,但仍然得到这样的消息: 这就是我的因果报应配置的样子:

  • 我有一个问题加载类到Angular组件。很长一段时间以来,我一直试图解决这个问题;我甚至尝试将它加入到一个文件中。我拥有的是: 一个pplication.ts 服务/名称服务。ts 我一直收到一条错误消息,说。 有人能帮我发现代码的问题吗?

  • 我是angular和jhipster的新手,我已经编辑了登录组件,添加了formbuilder和MatDialogRef,并更新了单元测试:

  • 我正在尝试发送电子邮件完成的EMR工作。我在sbt依赖项中使用了libraryDependencies+=“com.sun.mail”%“javax.mail”%“1.6.2”。 }`