【发布时间】:2015-11-11 16:27:17
【问题描述】:
我有一个内置在 TypeScript 中的 Angular 服务,该服务将 toastr 作为依赖项注入,我收到以下错误:
Error: [$injector:unpr] Unknown provider: toastrProvider <- toastr <- toaster
这里是服务:
module app {
'use strict';
export interface IToasterService {
toastrDefaults(): ToastrOptions;
success: (text: string, title?: string, optionsOverride?) => void;
info: (text: string, title?: string, optionsOverride?) => void;
warning: (text: string, title?: string, optionsOverride?) => void;
error: (text: string, title?: string, optionsOverride?) => void;
}
export class ToasterService implements IToasterService {
static $inject: Array<string> = ['toastr'];
constructor(private toastr: Toastr) {
}
toastrDefaults(): ToastrOptions {
var toastrOptions: ToastrOptions = {
timeOut: 2000,
extendedTimeOut: 1000,
positionClass: "toast-top-right-content"
};
return toastrOptions;
}
success(text, title, optionsOverride) {
this.toastrDefaults();
this.toastr.success(text, title, optionsOverride);
}
info(text, title, optionsOverride) {
this.toastrDefaults();
this.toastr.info(text, title, optionsOverride);
}
warning(text, title, optionsOverride) {
this.toastrDefaults();
this.toastr.warning(text, title, optionsOverride);
}
error(text, title, optionsOverride) {
this.toastrDefaults();
this.toastr.error(text, title, optionsOverride);
}
}
angular.module('app').service('toaster', ToasterService);
}
我尝试了许多不同的解决方案。到目前为止没有任何效果。有什么想法吗?
【问题讨论】:
-
toastr 服务从何而来?您是否已将其模块声明为应用程序模块的依赖项?抱歉,顺便说一句,票数接近。我读的太快了,还以为你在烤面包机和烤面包机之间有错字。
-
它没有被声明为对应用程序模块的依赖。在将其转换为 TypeScript 之前,不需要在应用程序模块上声明它。
-
另外,toastr 是一个外部模块。我从 nuget 引入了 toastr 和输入文件。
标签: angularjs typescript toastr