【问题标题】:Custom Pure Pipe in Angular2 with change detection pushAngular2中的自定义纯管道,带有更改检测推送
【发布时间】:2016-11-05 01:38:47
【问题描述】:

我正在尝试在 Angular 2 中实现一个自定义管道,以便在我们的网站上进行翻译。我首先制作了一个不纯的管道,但注意到它会因每次鼠标悬停和 dom 中的小事件而发生变化。 另一种选择是实现纯管道,但这需要传入输入(语言代码)以便检测到更改。

我想继续使用纯管道并将更改检测策略更改为 OnPush。但是有没有办法全局设置变更检测策略而不是在每个组件中指定呢?

另一种选择是全局注入具有语言代码的翻译服务。有没有像PLATFORM_PIPES或PLATFORM_DIRECTIVES这样全局注入服务的选项?

【问题讨论】:

    标签: angular


    【解决方案1】:

    如果您在根组件 (AppComponent) 上提供服务,则将其作为构造函数参数的每个组件或管道或服务都会注入相同的实例。

    【讨论】:

    • 是的,但我不想导入并包含在每个组件的构造函数中
    • 这就是注入的工作原理。没有其他办法。实际上,您可以按令牌而不是按类型注入,但我不建议使用它。导入有什么问题?
    • 因为这是翻译服务,它将被注入到我们应用程序中的几乎每个组件中。所以我有点怀疑。我正在考虑像管道一样在全球范围内注入它
    • 如果你将它注入到管道中并在全局范围内提供管道,那么应该没有什么可做的。
    • 嗨 Gunter,除非传入管道的参数发生变化,否则不会在 Angular 2 中调用管道转换。另一种选择是使其成为有状态管道
    猜你喜欢
    • 1970-01-01
    • 2016-12-24
    • 2016-06-18
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    相关资源
    最近更新 更多