[英]How to inject class into Service [Angular 6]
我們可以將一個類(不是服務)作為共享實用程序,它可以通過角度依賴注入注入到服務甚至組件中嗎?
我的實用類
export class MyUtilClass{
do(){
// something
}
}
我的服務
export class MyService{
constructor(private uitl:MyUtilClass){
util.do();
}
}
服務是有一點附加差異的類(不是結構上的),它們有一個裝飾器 @Injectable() 不是更多! 您可以通過運行 angular CLI 來提供服務
ng generate service service-name
它將被注入到您的其他班級中。享受吧!
angular 中的服務只是一個類,因此您可以將任何類注入到任何類中
公用事業
import { Injectable } from '@angular/core';
@Injectable({providedIn:'root'})
export class Utility {
constructor(){
console.log('Utility is created');
}
}
我的服務
import { Injectable } from '@angular/core';
import {Utility} from './utility'
@Injectable({providedIn:'root'})
export class MyServiceService {
constructor(private uitl:Utility) { }
}
{providedIn:'root'}
在 angular 6 的一個特性中,另一種方法是將 MyServiceService , Utility 添加到app.module.ts中的 providers 數組,在這種情況下,您可以刪除 Utility 類中的 @Injectable 裝飾器
您可以使用您的 utils 創建文件,例如 util.ts 並直接包含導出功能,例如
export function do() {
//do something
}
接下來,它可能會被導入並使用到您的服務中。 另一方面,您可以創建 MyUtilService 而不是類,並將其提供到您的 MyService 中,這是 Angular 推薦的方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.