Угловая нагрузка внешнего класса внутри сервиса - PullRequest
0 голосов
/ 28 июня 2018

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

export class Functions {
testy() {
    alert("I am testy");
 }
 }

Я вызываю этот класс функций внутри моего сервиса, используя:

 import{Functions} from '../data/f'

Но внутри моего сервиса, когда я пытаюсь получить это используя:

 constructor(private f: Functions)

Я получаю ошибку:

 ERROR Error: Uncaught (in promise): Error: StaticInjectorError(AppModule)[Functions]: 

StaticInjectorError (Платформа: ядро) [Функции]:

Как я могу вызвать мою функцию внутри моего сервиса следующим образом:

 test() {
  this.f.testy();
 }

Каков наилучший из возможных способов доступа к внешним классам внутри служб

1 Ответ

0 голосов
/ 28 июня 2018

Лучше, если вы добавите декоратор Injectable в ваш класс. Однако, если вы не можете (возможно, это класс из сторонней библиотеки), вы все равно можете добавить его в свои компоненты / сервисы, если объявите его в поставщиках модуля

@NgModule({
  imports:      [ BrowserModule, FormsModule ],
  declarations: [ AppComponent, HelloComponent ],
  bootstrap:    [ AppComponent ],
  providers: [Functions]
})

Примечание : декоратор Injectable потребуется для вашего Functions класса, если этот класс требует, чтобы какой-то другой класс был внедрен в его собственный конструктор.

Демонстрация Stackblitz

...