Angular 2 个可注入的 AppSettings Class

Angular 2 injectable AppSettings Class

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

我的设置一直流到我将一个设置写入我的布局的地步,如下所示:

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

这是有效的,我已经通过查看标记进行了验证。现在,我想要的是制作一个 appsettings class,我可以通过 DI 将其注入到需要它的服务和组件中。这是我目前所拥有的:

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

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

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

Error: Uncaught (in promise): Error: No provider for AppSettings!

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

Error: Unexpected value 'AppSettings' imported by the module 'AppModule'

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

Error: No Directive annotation found on AppSettings

我对 Angular 2 很陌生,所以这些错误让我失望。对我做错了什么有什么想法吗?

谢谢

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