Angular: AngularJS $ injector.invoke эквивалентен вызову инъецируемой функции - PullRequest
0 голосов
/ 16 июня 2019

В AngularJS можно пометить функцию как внедряемую и добавить в функцию сервисы, вызывая ее через $injector.invoke:

function fun(myService, yourService) {
  'ngInject';

  // do something with myService, yourService
}

$injector.invoke(fun);

В Angular можно ли добиться того же? Другими словами, чтобы:

  • пометить любую функцию (не класс) как инъекционную?
  • вызвать эту инъецируемую функцию с определенным инжектором (эквивалент $ injector.invoke)?

1 Ответ

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

В @angular единственными местами, где вы можете использовать injector для вызова зависимостей, являются @Injectable классы (например, компонент, служба, директива и т. Д.).

Итак, в порядкеДля этого вы можете добавить декоратор @Injectable следующим образом:

@Injectable({
  providedIn: 'root'
})
export class FunService {

  constructor(myService: MyService, yourService: YourService) {}

  fun() {
    //implement fun
  }

}
...