【问题标题】:Knockout in IE8 calls the subscribe binding on select automatically?IE8 中的 Knockout 自动调用 select 上的订阅绑定?
【发布时间】:2014-03-27 20:00:29
【问题描述】:

我正在使用 Knockout 将数组绑定到下拉列表,并订阅此下拉值选择(“chosenResult”)

<select data-bind="options: arrayResult, optionsText: 'item', selectedOptions: chosenResult, multiple: false, optionsCaption: 'Choose'"></select>

现在 IE8 首次自动调用此订阅并从下拉列表中选择第一个值。所有其他浏览器(chrome、firefox)都可以正常工作,并且只有在用户选择一个值时才会调用此订阅函数。

不知道为什么它只发生在 IE8 中。

谢谢。

【问题讨论】:

  • 我无法对此进行测试,因为我现在不再可以访问 IE8 实例。但如果这是一个单一的选择,你应该使用value 而不是selectedOptions
  • 我有带有 ie 10 的 windows 7,并且可以通过从开发人员工具切换到 ie 8 模式来复制问题。不幸的是,这是一个多选。该问题也出现在带有 ie 8 的 win xp 上。
  • 我使用的是 Windows 8.1 和 IE 11。我无法再指定兼容模式!您是否将 selectedOptions 更改为 value ?

标签: knockout.js internet-explorer-8


【解决方案1】:

固定。

在 IE 中调用 subscribed 函数的原因是绑定到选择列表的数组中的项目被添加到一个循环中,每次将一个项目添加到“arrayResult”数组中时都会调用 notificatinos。我修复它的方法是首先创建数组,然后将该数组添加到可观察数组中。奇怪的是,虽然在 Firefox 或 chrome 中没有遇到过这样的问题。

【讨论】:

    猜你喜欢
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    • 1970-01-01
    • 2020-12-19
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    相关资源
    最近更新 更多