Angular 4 with angular-cli - 没有找到AOT的第三方提供商

时间:2017-08-27 15:26:00

标签: angular angular-cli angular2-aot toastr

我正在使用angular-cli 1.2.6构建一个小型Angular 4应用程序。在开发过程中一切正常,并且使用ng build --dist成功构建。但是在运行时,没有找到我用作服务的第三方供应商之一toastr - 注入它时是undefined。以下是我将其纳入项目的方法:

<。>在.angular-cli.json

...

"scripts": [
    ...
    "../node_modules/toastr/build/toastr.min.js"
  ],

...

我在一个单独的文件中创建了一个注入令牌:

import {InjectionToken} from '@angular/core';
import {IToastr} from './toastr.model';

export let TOASTR_TOKEN = new InjectionToken<IToastr>('toastr');

然后在app.module.ts我将其包含为提供者:

import {TOASTR_TOKEN} from './common/tokens';

let toastr = window['toastr'];

...
providers: [
    ...
    {provide: TOASTR_TOKEN, useValue: toastr}
],
...

1 个答案:

答案 0 :(得分:2)

好的,经过一些研究后我找到了解决问题的方法。节省了一天的时间是导出我用来分配给提供者的useValue属性的变量:

import {TOASTR_TOKEN} from './common/tokens';

export let toastr = window['toastr'];

...
providers: [
    ...
    {provide: TOASTR_TOKEN, useValue: toastr}
],

...