【问题标题】:Refresh options binding of select list in knockout在淘汰赛中刷新选择列表的选项绑定
【发布时间】:2014-01-02 18:42:16
【问题描述】:

我有一个使用选项敲除数据绑定的列表框。当页面加载时,绑定到列表框的可观察数组是空的,但在单击按钮时会被填充。如何在按钮单击时动态刷新列表框的选项绑定?

 <select id="listBoxOne"  size="10" multiple="multiple" data-bind="options: icdCodesForDxCodeSorterListBox">
 </select>

列表框位于模态表单内,可观察数组在单击非模态表单的按钮时被填充。

【问题讨论】:

  • 如果您的icdCodesForDxCodeSorterListBox 是一个可观察数组,那么您的选项绑定应该会自动更新。请在填写icdCodesForDxCodeSorterListBox的位置发布您的代码!
  • 点击按钮我正在使用 vm.icdCodesForDxCodeSorterListBox().push 语句填充可观察数组。列表框位于模态表单内,可观察数组在按钮单击时填充,而不是模态表单。当我打开模态表单时单击按钮后,列表框始终为空。
  • 你应该写 vm.icdCodesForDxCodeSorterListBox.push 没有 () 否则你正在推入底层数组并且不会通知 Knockout 更改...
  • 感谢您的帮助。这样可行。您可以将您的评论修改为答案,我会将其标记为答案。

标签: knockout.js listbox options


【解决方案1】:
  1. 请记住,如果您在applyBindings 之后的页面中动态插入 html,则不会绑定这些值。

  2. 在应用绑定之前,您需要将页面中的模态 html 作为模板

  3. [不推荐]但您也可以再次调用 applyBindings,但需要将其限制在该模态内容的容器中,以免与其他可能的绑定发生冲突。

  4. 查看 requirejs 以及如何在运行淘汰模块之前使用 text.js 插件异步加载 html 模板

  5. 如果你不做模块化代码结构,那就开始做吧。

【讨论】:

    猜你喜欢
    • 2013-05-04
    • 2019-01-05
    • 2014-02-21
    • 1970-01-01
    • 2018-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多