Angular:访问组件模板内部的外部静态类

chr*_*s01 2 typescript angular

可以说我在相应的类中有一个角度分量。

@Component({
  selector: "test",
  template: `       whatever    `
})

export class TestComponent
{}
Run Code Online (Sandbox Code Playgroud)

然后我有一个带有静态成员的类(绑定到该类而不是实例)。

export class Config
{
    public static foo () : string
    {  return "blabla"; }
}
Run Code Online (Sandbox Code Playgroud)

有什么方法可以在组件模板中调用Config.foo?

template: ` {{ Config.foo () }} `
Run Code Online (Sandbox Code Playgroud)

如果将它包装在TestComponent中并在我的组件中调用它,它将起作用。

template: `{{ myfoo () }}`
...
export class TestComponent
{
  myfoo ()
  { return Config.foo (); }
}
Run Code Online (Sandbox Code Playgroud)

但这不是我想要的。

Config应该包含全局配置信息,而我不想在许多组件中包装任何信息。

还是有一些更优雅的方式?我考虑过注入(单例),但是我更喜欢使用静态方式获取无状态的常量信息。

谢谢!

ADr*_*-DJ 5

这是正常的,您无法Config.foo在模板内调用方法。

在模板内部,双括号({{}})内的表达式“作用域”于组件本身:this暗含在表达式上。

在这种情况下,我经常使用的东西是“吸气剂”,如下所示:

get configFoo(): string { return Config.foo(); }
Run Code Online (Sandbox Code Playgroud)

在模板内部,它看起来像这样:

{{configFoo}}
Run Code Online (Sandbox Code Playgroud)