Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 具有出厂功能的角度自定义模块不工作_Angular_Typescript - Fatal编程技术网

Angular 具有出厂功能的角度自定义模块不工作

Angular 具有出厂功能的角度自定义模块不工作,angular,typescript,Angular,Typescript,我试图做一些额外的配置注入,并找到了一些好文章来做这件事,但是,我无法让我的例子工作 首先,我的自定义模块: @NgModule() export class AppConfigModule { static forRoot(config?: FunkyConfig): ModuleWithProviders { return({ ngModule: AppConfigModule, providers: [ { pro

我试图做一些额外的配置注入,并找到了一些好文章来做这件事,但是,我无法让我的例子工作

首先,我的自定义模块:

@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
{
}
在工厂函数中,我目前只有一个调试器;因为我想确保这段代码被命中,但什么都没有

我不明白这是怎么回事吗

我执行
ngs——观察
,以便自动刷新更改

更新

我没有在我的服务中正确地注入这个。谢谢大家。

你试过这个吗

@NgModule()
export declare class AppConfigModule {
  static forRoot(config?: FunkyConfig): ModuleWithProviders;
}

export declare class FunkConfig {
   // your config
}
你试过这个吗

@NgModule()
export declare class AppConfigModule {
  static forRoot(config?: FunkyConfig): ModuleWithProviders;
}

export declare class FunkConfig {
   // your config
}

我认为工厂函数将不会被调用,除非您随后尝试注入FunkyConfigClass。工厂仅在注入到另一个服务或组件时才会被调用。我认为工厂函数将不会被调用,除非您随后尝试注入FunkyConfigClass。工厂仅在注入到另一个服务或组件时才会被调用另一个服务或组件如果引入任何逻辑,则在环境上下文中的操作会出现错误。如果引入任何逻辑,则在环境上下文中的操作会出现错误。