动态调用管道变换时,Ng-select不会更新选项

时间:2019-09-28 09:14:32

标签: angular select

当动态调用管道变换时,例如,当调用翻译选项值的服务时,

Ng-select(https://github.com/ng-select/ng-select)不会更新值。

我尝试同时使用-ng-option方法和ng-template方法。

Ng-option-搜索有效,但是更改语言后值不会更新。 Ng模板-值在更改后会更新,但搜索无法正常工作。

示例: https://stackblitz.com/edit/ng-select-angular6-b5ru39

预期结果将是选项自动更新,或者在调用管道变换时使用ng-template的搜索效果很好。

1 个答案:

答案 0 :(得分:1)

您的语言服务应将currentLanguage公开为Observable。一旦成为可观察对象,您就可以使用异步管道在视图中对其进行订阅。使用它,Angular的ChangeDetection会再次插入以调用管道。

您甚至可以将管道设为纯管道(这是默认设置),因为Angular会使用新的语言代码再次调用管道。

我已经为您in this fork of your Stackblitz解决了这个问题。

另外,请记住,有很多不错的翻译库(TransLoco,ngx-translate),但是如果它本身是从服务器动态检索的,则仍然必须使用解决方案。