我在ASP.NET核心应用程序内使用角2,但这不是重要的这个问题。我当前的一部分任务是从服务器获取配置值到角度应用程序中。角2注射AppSettings类
我流过到我写一个设置成我的布局,像这样的点设置:
<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'];
}
非常简单直接,它应该允许我注入我的服务器变量。但是,当我尝试使用它时出现错误。
Error: Uncaught (in promise): Error: No provider for AppSettings!
所以,我认为我的问题是,它没有列在我的应用程序模块的进口。所以我说这只是为了得到这个错误:
Error: Unexpected value 'AppSettings' imported by the module 'AppModule'
所以,谷歌上搜索这个错误导致我一个帖子称这可能需要在引导部分,所以我想,明年只拿到一个新的错误消息。
Error: No Directive annotation found on AppSettings
我对Angular 2非常绿色,所以这些错误都让我失望。有什么想法我做错了什么?
谢谢
不要把它放到模块的'imports'元数据中,把它放到'providers'中。 – pe8ter
优秀的建议。但是,现在我有一个“窗口未定义”错误发生在我的appsettings.ts – Josh
编译错误或运行时错误? – pe8ter