如何将类注入服务 [Angular 6]

bha*_*gat 5 typescript angular angular6

我们可以将一个类(不是服务)作为共享实用程序,它可以通过角度依赖注入注入到服务甚至组件中吗?

我的实用类

export class MyUtilClass{

  do(){
     // something
  }
}
Run Code Online (Sandbox Code Playgroud)

我的服务

export class MyService{
  constructor(private uitl:MyUtilClass){
    util.do();
  }
}
Run Code Online (Sandbox Code Playgroud)

mal*_*awi 3

角度中的服务只是一个类,因此您可以将任何类注入到任何类中

公用事业

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

@Injectable({providedIn:'root'})
export class Utility {
  constructor(){
    console.log('Utility is created');
  }
}
Run Code Online (Sandbox Code Playgroud)

我的服务服务

import { Injectable } from '@angular/core';
import {Utility} from './utility'

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

  constructor(private uitl:Utility) { }

}
Run Code Online (Sandbox Code Playgroud)

{providedIn:'root'}在 Angular 6 的功能中,另一种方法是将 MyServiceService 、 Utility 添加到app.module.ts中的提供者数组中,在这种情况下,您可以删除 Utility 类中的 @Injectable 装饰器

演示 - 检查控制台