angular - 动态调用管道转换时,ng-select 不更新选项
问题描述
Ng-select ( https://github.com/ng-select/ng-select ) 在动态调用管道转换时不会更新值,例如,当调用用于转换选项值的服务时。
我尝试同时使用 - ng-option 方式和 ng-template 方式。
Ng-option-search 有效,但在语言更改后值不会更新。Ng-template - 更改后更新值,但搜索不起作用。
示例: https ://stackblitz.com/edit/ng-select-angular6-b5ru39
预期的结果是选项自动更新或在调用管道转换时使用 ng-template 进行搜索可以正常工作。
解决方案
您的语言服务应该将 currentLanguage 公开为 Observable。一旦它是一个 Observable,您就可以在视图中使用异步管道订阅它。使用它,Angular 的 ChangeDetection 再次调用管道。
你甚至可以让你的管道是纯的(这是默认的),因为它会被 Angular 用新的语言代码再次调用。
我已经在你的 Stackblitz 的这个分支中为你解决了这个问题。
另外,请记住有很多好的翻译库(TransLoco、ngx-translate),但如果数据本身是从服务器动态检索的,您仍然必须使用您的解决方案。
推荐阅读
- sql - 出现错误“ORA-00942:表或视图不存在”
- ionic-framework - 如何从数组响应中获取项目列表
- python - 如何在 matplotlib 和 ploty 中将 LaTeX 数学表达式与其他字体一起使用?
- javascript - 从事件侦听器更改时 RGB 颜色不更新
- yaml - dhall-to-yaml:表示嵌套在结构化 yaml 中的非结构化块
- parse-platform - 解析查询覆盖旧查询的新查询?
- android - bundle.getString 返回一个空字符串
- python - 我无权使用 Facebook SDK 删除对象
- java - 错误 - 对象引用了未保存的瞬态实例
- c# - 上电掉落位置问题