2017-06-19 26 views
1

我有一個實用工具類,它上面有一些靜態方法。Angular 2爲公用事業類注入服務

在一種方法中,我想獲取一個對象並返回其圖像的安全樣式。

問題是我需要使用DomSanitizer服務,我無法在靜態方法中使用它。 下面是代碼:

export class Utilities{ 

    constructor(private sanitizer:DomSanitizer){ 
    } 


    static getImageStyle(obj){ 
      return this.sanitizer.bypassSecurityTrustStyle(`url(data:image/jpg;base64,${obj.image})`); 

    } 

} 

這是否需要在非靜態方法做,我應該我每次使用此功能時創建類的實例?

回答

1

如您所見here靜態函數不使用類的實例。那裏如果你在構造函數中聲明一個服務,它將不會在靜態方法中可用。

爲什麼不只是讓Utilities也是一個服務,並添加sanitizer:DomSanitizer像你這樣的utilies服務構造函數?

+0

是的,你是對的。我想我需要把它作爲一項服務來完成。我想避免它,因爲我已經在很多地方使用過這個工具... – Batsheva