angular - 在组件模板中使用服务中的静态函数

标签 angular dependency-injection expression

我创建了一个简单的服务(MyService),它有一个静态公共(public)函数 称为 hello,它返回字符串“hello”

在另一个组件中,我导入 MyService 并希望将 hello 输出放置在模板中的表达式中,如下所示:

{{ myService.hello() }}

我能够使用非静态方法(使用在组件构造函数中注入(inject)的实例)来完成这项工作:

{{ myInstance.hello() }}

但我似乎无法使用静态方法进行等效操作。浏览器提示 hello 不是一个函数。为什么不呢?

最佳答案

静态方法不能直接在模板中使用。
模板的范围是组件实例,并且在绑定(bind)中只能引用此范围中的标识符。

export class MyComponent {
  hello = MyService.hello
}

允许

{{hello()}}

关于angular - 在组件模板中使用服务中的静态函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45924725/

相关文章:

javascript - 将 d3 事件从 Javascript 转换为 Typescript (Angular2)

dependency-injection - 为什么注入(inject)类而不是接口(interface)被认为是不好的做法?

java - "@inject"-ed 属性保持为空

c# - 解析传递给 LINQ 表达式所在方法的 LINQ 参数

c# - 将 ASP.net Angular 应用程序部署到 IIS 时出现问题

javascript - Angular 4预定表格自动保存

reporting-services - SSRS 2012 : Display Parameter Label in Caps

javascript - RegExp,如何在 javascript 中连接字符串来创建动态正则表达式?

angular - RxJS 中的 map 与 switchMap

java - 将类对象注入(inject)另一个类中,而不将其添加到构造函数中