Отдельные файлы для функций в Angular 2/4 Injectable

Я пишу сервис, который, вероятно, будет расти в геометрической прогрессии, и я хотел бы иметь возможность писать отдельные файлы и загружать их в @Injectable, который использует компонент. Обычно я просто пишу несколько сервисов и внедряю каждый из них в компонент, но мой компонент уже довольно сложный, и я чувствую, что было бы проще поддерживать, если бы я мог просто загрузить один сервис и позаботиться обо всех функциях в этом один сервис. Я надеюсь, что я просто не гуглил правильные вещи, и это так же просто, как импорт.

Общая идея будет что-то вроде этого:

-configfns1.ts

-configfns2.ts (содержит несколько функций ts, которые я хочу использовать как config.service)

-config.service.ts

import { Injectable } from '@angular/core'
//{{Possibly import functions here}}

@Injectable ()
export class ConfigService {

  //{{Or possibly load within the class}}

}

-Config-view.component.ts

import { Component, OnInit } from '@angular/core';
import { ConfigService } from '../services/config.service';

@Component({
  selector: 'app-config-view',
  templateUrl: './config-view.component.html',
  styleUrls: ['./config-view.component.scss']
})

export class ConfigViewComponent implements OnInit {

  constructor(private configService: ConfigService){  }

  ngOnInit() {
          this.configService.configfn1(); //<---This would be a function loaded from configfns1.ts, and injected from config.service.ts
      })

  onClick() {
    this.configService.configfn2(); //Another fn loaded from configfns2.ts
  }

}

Возможен ли этот метод? Или мне нужно просто создать отдельные сервисы для каждого и импортировать каждый из них в мой компонент?

1 ответ

Решение

После большего количества поисков я обнаружил, что это был простой ответ на импорт машинописного текста.

-config.service.ts

import { Injectable } from '@angular/core'
import * as configFns1 from './configfns1.ts'
import * as configFns2 from './configfns2.ts'

@Injectable ()
export class ConfigService {

  fn1() {
    configFns1.fn1();
  }

  fn2() {
    configFns2.fn2();
  }
}

fn1 () и fn2() можно назвать обычными.

Другие вопросы по тегам