Angular Toaster不在打字稿中工作

时间:2016-04-07 08:21:06

标签: javascript angularjs typescript typescript1.5

我从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以及我必须传递什么才能使烤面包机工作?

1 个答案:

答案 0 :(得分:0)

有几点:

烤面包机是否有效,与TypeScript无关。最后,它应该是正确运行的JavaScript。所以TypeScript与问题无关,除非您遇到编译错误?

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

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

}

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

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

最后,clickHandler允许您在用户单击烤面包机时执行一些代码。但这是一个可选的论点,你真的不需要它。只需使用它就可以正常工作:

this.toaster.success("hello");