Angular Toast无法在打字脚本中工作

Angular Toaster not working in typescript

本文关键字:脚本 工作 Toast Angular      更新时间:2024-03-07

我已经从nuget下载了angular-toother.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,我必须通过什么才能使烤面包机工作?

几个要点:

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

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

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

如果事情仍然不起作用,请确保脚本已加载,并且您添加了烤面包机模块作为依赖项:

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

最后,clickHandler允许您在用户单击烤面包机时执行一些代码。但这是一个可选的论点,你并不真的需要它

this.toaster.success("hello");