假设我有一个带有相应类的角度分量。
@Component({
selector: "test",
template: ` whatever `
})
export class TestComponent
{}
然后我有一个带有静态成员的类(绑定到类而不是实例)。
export class Config
{
public static foo () : string
{ return "blabla"; }
}
有没有办法可以在我的组件模板中调用Config.foo?
template: ` {{ Config.foo () }} `
如果我将它包装在TestComponent中并在我的组件中调用它,它就可以工作。
template: `{{ myfoo () }}`
...
export class TestComponent
{
myfoo ()
{ return Config.foo (); }
}
但那不是我想要的。
Config应该保存全局配置信息,我不想在很多组件中包装任何信息。
还是有更优雅的方式吗?我考虑过注入(单例)但我更喜欢静态方式更多的无状态常量信息。
谢谢!
答案 0 :(得分:4)
这是正常的,您无法在模板中调用Config.foo
方法。
在模板内部,双括号({{}}
)内的表达式“作用于”组件本身:this
被隐含地放在表达式上。
我在这种情况下经常使用的是“getters”,如下所示:
get configFoo(): string { return Config.foo(); }
在模板中,它看起来像这样:
{{configFoo}}
答案 1 :(得分:2)
html模板无法直接访问静态成员。这些元素仅用于创建单音对象并直接访问其他类。所以我们必须创建一个非静态方法来返回它在html模板中的值。模板以“this”为界,它与该模板相关联。