Angular 2可注射AppSettings类

时间:2016-11-13 06:04:36

标签: angular dependency-injection appsettings

我在ASP.NET Core应用程序中使用angular 2,但这对此问题并不重要。我当前任务的一部分是从服务器获取配置值到我的角度应用程序。

我的设置已经流到了我正在将一个设置写入我的布局的点:

<script>
    var BASE_WEB_API_URL = '@appSettings.BaseUrls.Api';
</script>

这是有效的,我通过查看标记验证了这一点。现在,我想要的是创建一个appsettings类,我可以通过DI注入我的服务和需要它的组件。以下是我到目前为止的情况:

import { Injectable } from '@angular/core';

@Injectable()
export class AppSettings {
    public BASE_WEB_API_URL: string = window['BASE_WEB_API_URL'];
}

非常简单直接,它应该允许我注入我的服务器变量。但是,当我尝试使用它时出现错误。

  

错误:未捕获(在承诺中):错误:没有AppSettings的提供者!

所以,我认为我的问题是它没有列在我的app模块的导入中。所以我添加它只是为了得到这个错误:

  

错误:模块'AppModule'

导入的意外值'AppSettings'

所以,谷歌搜索这个错误导致我发帖说它可能需要在bootstrap部分,所以我尝试了下一步只是为了得到一个新的错误信息。

  

错误:在AppSettings上找不到指令注释

我对Angular 2非常环保,所以这些错误让我失望。对我做错了什么的想法?

谢谢

1 个答案:

答案 0 :(得分:1)

将注射剂放入模块的providers元数据中,而不是imports