Инициализировать класс во время повышения Angular? - PullRequest
0 голосов
/ 28 июня 2019

У меня есть пользовательский класс:

class A {
   private items = [];
   constructor() {
       for(let i= 0; i < 5; i++) {
           this.items.push(i);
        }
   }

   public get(){
       return this.items;
   }
}

Мне нужно создать экземпляр этого класса один раз при повышении Angular, затем я хочу получить экземпляр A везде в приложении, в другой пользовательской службе. Как правильно зарегистрировать этот класс А?

Еще одна специальная услуга:

class ButtonUsage {
  public constructor(instance a: A) {
     a.get();
  }
}

1 Ответ

1 голос
/ 28 июня 2019

Инъекционный декоратор необходим для того, чтобы сервис мог быть внедрен в другие сервисы или компоненты.

a.ts

import { Injectable } from '@angular/core';

@Injectable({ providedIn: 'root' }) // global scope singleton
export class A {
  ...
}

использование кнопки.тс

import { Injectable } from '@angular/core';

import { A } from './a';

@Injectable({ providedIn: 'root' })
export class ButtonUsage {
  constructor(
    private a: A,
  ) {
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...