1

我在我的角度组件中应用 toasterjs。这是我的代码。我已经ToastrService使用代码导入了:

import { ToastrService } from 'ngx-toastr';

并在构造函数中注入该服务

constructor(private toastrService: ToastrService) {    
}

this.toastrService.success('You are awesome!', 'Success!',)

但它给出了以下错误:

无法解析 ToastrService 的所有参数:(?, [object Object], [object Object], [object Object], [object Object])

当我转到它的定义时,它采用了 4 个参数。以下是参数:

success(message?: string, title?: string, override?: Partial<IndividualConfig>): ActiveToast;

我还添加了模块:

imports: [
    ToastrModule.forRoot(),
    CommonModule,
    HttpModule,
    FormsModule,
    ReactiveFormsModule,
    TextboxModuleShared,
    DateTimeModuleShared,
    DropdownModuleShared
],

那么如何使用参数,因为我只想显示成功消息?

4

3 回答 3

1

ToastrModule在应用程序的 NgModule 中导入的顺序不正确。它应该按照文档指示的顺序导入:

@NgModule({
  imports: [
    CommonModule,
    BrowserAnimationsModule, // required animations module
    ToastrModule.forRoot(), // ToastrModule added
  ],
  bootstrap: [App],
  declarations: [App],
})
class MainModule {}

如果此应用程序在此处所示的浏览器中运行,您还应该替换CommonModule为。BrowserModule

请注意,在调用函数时不会发生错误success,而是在调用ToastrService. 您的错误消息明确指出并非 ToastrService 构造函数的所有参数都可以解析。其中一些参数无法解析,因为尚未创建这些参数的实例。要了解它是如何工作的,您应该阅读Angular 框架中的依赖注入文档。

于 2018-03-15T15:47:07.197 回答
0

尝试导入“注入”装饰器,然后在构造函数中装饰参数,作为参数,您应该像这样添加 ToastrService:

constructor(@Inject(ToastrService) private toastyService: ToastrService ) { }

于 2020-05-15T12:10:01.460 回答
0

需要考虑的要点: 我面临同样的问题。所以在这里我如何得到解决方案

  • 安装“ngx-toastr”包并使用“toastr.css”更新 angular.json 文件后

  • 应该使用 ng-serve 命令重新运行 angular,因为更改 angular.json 文件不会呈现应用程序

于 2019-11-08T11:01:47.987 回答