angular - 具有工厂功能的角度自定义模块不起作用
问题描述
我正在尝试做一些额外的配置注入,并找到了一些很好的文章来做到这一点,但是,我无法让我的示例正常工作。
首先,我的自定义模块:
@NgModule()
export class AppConfigModule {
static forRoot(config?: FunkyConfig): ModuleWithProviders {
return({
ngModule: AppConfigModule,
providers: [
{
provide: FUNKY_CONFIG,
useValue: config
},
{
provide: FunkyConfigClass,
useFactory: appConfigFactory,
deps: [FUNKY_CONFIG],
multi: true
}
]
});
}
}
这段代码的useFactory
一部分永远不会触发。
我的app.config看起来像这样:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpClientModule } from '@angular/common/http';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { RouterModule, Routes } from '@angular/router';
import { AppComponent } from 'app/app.component';
import { LayoutModule } from 'app/layout/layout.module';
import { TestModule } from 'app/main/test/test.module';
import { AppConfigModule } from './app-config.module';
const appRoutes: Routes = [
{
path : '**',
redirectTo: 'test'
}
];
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
BrowserAnimationsModule,
HttpClientModule,
RouterModule.forRoot(appRoutes),
AppConfigModule.forRoot(),
// App modules
LayoutModule,
TestModule
],
bootstrap: [
AppComponent
]
})
export class AppModule
{
}
在工厂函数中,我目前只有一个调试器;因为我想确保这个代码被命中,但是,什么都没有。
我不明白这是如何工作的吗?
我这样做ng s --watch
是为了自动刷新更改。
更新
我没有在我的服务中正确地注入它。感谢大家。
解决方案
你试过这个吗?
@NgModule()
export declare class AppConfigModule {
static forRoot(config?: FunkyConfig): ModuleWithProviders;
}
export declare class FunkConfig {
// your config
}
推荐阅读
- akka - Akka - 了解演员模型
- c# - 将值标准化为 -1 和 1 之间的范围
- javascript - 在 JSON 中搜索值并返回到控制台
- excel - 求解器故障?Excel VBA
- angular - 最新版本的ngrx错误处理不起作用
- laravel - Laravel-App 在 URL 中具有基本身份验证:适用于 Web,不适用于 API
- oracle - 在没有交互式报告的情况下手动制作搜索栏。(甲骨文顶点)
- c# - DebuggerHiddenAttribute 不适用于 lambda
- alexa - Alexa 模拟器无法将数字识别为插槽值
- python - 如何使用一个数组的索引来定义另一个数组的 __getitem__?