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 搜索工作正常。
语言服务应将当前语言公开为可观察量。一旦它是可观察对象,就可以使用异步管道在视图中订阅它。使用它,Angular 的 ChangeDetection 启动以再次调用管道。
你甚至可以让你的管道是纯的(这是默认的(,因为 Angular 会用新的语言代码再次调用它。
我已经在你的堆栈闪电战的这个分支中为你解决了这个问题。
另外,请记住,有很多好的翻译库(TransLoco,ngx-translate(,但如果数据本身是从服务器动态检索的,您仍然必须使用您的解决方案。