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

时间:2019-04-11 12:04:12

标签: angular typescript

我正在尝试进行一些其他的配置注入,并找到了一些不错的文章来做到这一点,但是,我的示例无法正常工作。

首先,我的自定义模块

@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,以便自动刷新更改。

更新

我没有正确将其注入我的服务中。谢谢大家。

1 个答案:

答案 0 :(得分:0)

您尝试过吗?

let houRString = "13"

let minTString = "30"

let str = "\(houRString):\(minTString)"
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "H:mm"
if let inDate = dateFormatter.date(from: str) {
    dateFormatter.dateFormat = "hh:mm a"
    let time = dateFormatter.string(from:inDate)
    print("time in 12 hour is: \(time)") //"time in 12 hour is: 01:30 PM\n"
}