2016-07-26 67 views
2

我的班级是这样的:如何在模板中使用类的静态方法或自定义函数?

export class Image { 
    static getUrl(x: Image) { 
     return CONFIG.host + x.url 
    } 

    constructor(private url: string, public alt: string) {} 
} 

我的模板是这样的:

<img [src]="Image.getUrl(image)" [alt]="image.alt" > 

我的部分是这样的:

export class MyComponent { 
    image: Image; 
    Image = Image; 
} 

目前我必须通过类本身Image通过使用Image.getUrl按顺序手动添加到组件。什么是在模板中使用自定义函数或类方法的标准方法?

如果我使用实例方法,那么如果我收到一个包含属性的Json看起来像Image,我必须在调用该方法之前进行适当的类型转换,如果它位于嵌套的json中,这不是非常方便。

+0

为什么方法定义需要这样?使它成为一个没有参数的实例方法更有意义,只需使用实例url调用实例上的方法即可。 –

+0

你也可以做'get url(){}'。这样你就可以像普通的财产一样访问它。 'image.url' –

+1

@peeskillet因为如果我添加实例方法,它不再与json自动兼容。 – colinfang

回答

3

据我所知,没有办法引用模板内的全局变量/类。模板的范围在其托管组件内。

您可以使其成为Image类的非静态吸气剂,或定义自定义管道以帮助您将Image变换为imageUrl

相关问题