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
。
我在 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
。