2017-06-19 27 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