【问题标题】:Angular Toaster not working in typescriptAngular Toaster 在打字稿中不起作用
【发布时间】:2023-04-07 20:40:02
【问题描述】:

我已经从 nuget 下载了 angular-toaster.d.ts 文件并实现了一个通知服务,没有错误,但它不工作

export class notificationService {

    constructor(private toaster: ngtoaster.IToasterService) {
        debugger;                

        // this.toaster.toast.timeout = 3000;
        // this.toaster.toast.type = EnergyTechApp.Entity.Constants.info;
        // this.toaster.toast.showCloseButton = true;
    }

    displaySuccess(message: string) {                
        debugger;

        this.toaster.success(message); /// not working  Not displaying anything
        this.toaster.success("", "", 122, ""); // this is a overload     
    }
}

我不完全知道要在超载中发送什么,d.ts 文件中的超载是

success(title?:string, 
        body?:string, 
        timeout?:number, 
        bodyOutputType?:string, 
        clickHandler?:EventListener,
        toasterId?:number): void

什么是 eventHandler 以及我必须通过什么才能使烤面包机工作?

【问题讨论】:

  • 吐司来了吗?是否有任何控制台错误
  • toast 没有出现,甚至控制台中也没有错误。 :-(

标签: javascript angularjs typescript typescript1.5


【解决方案1】:

几点:

烤面包机是否工作与 TypeScript 没有任何关系。最后,应该是正确运行的 JavaScript。所以 TypeScript 与问题无关,当然,除非你遇到编译错误?

我认为这里的主要问题是您没有正确构建烤面包机服务。它被注入到您的服务器的构造函数中,但我没有看到$inject。假设这是一个角度服务,您应该使用角度依赖注入。我的猜测是 this.toaster 是未定义的,这可以解释为什么它不起作用。但是您应该会看到一些控制台错误。试试这样的:

static $inject = ["toaster"];
constructor(private toaster: ngtoaster.IToasterService) {

}

如果仍然无法正常工作,请确保脚本已加载并且您已将烤面包机模块添加为依赖项:

angular.module('myApp', ['toaster', 'ngAnimate'])

最后,clickHandler 允许您在用户单击烤面包机时执行一些代码。但这是一个可选参数,您并不需要它。使用这个应该可以正常工作:

this.toaster.success("hello");

【讨论】:

  • 实现相同,但不起作用:-(我认为 $inject 用于避免缩小级别问题
猜你喜欢
  • 2016-06-16
  • 2018-12-25
  • 1970-01-01
  • 2018-11-23
  • 2020-03-18
  • 1970-01-01
  • 2017-11-18
  • 1970-01-01
  • 2017-02-20
相关资源
最近更新 更多