【发布时间】:2017-06-27 07:54:58
【问题描述】:
我正在做一个相当大的项目,我在其中使用 KnockoutJS(很大,因为不可能在此处发布所有相关代码),今天我从 Knockout 3.4.0 升级到 3.4.1。执行此操作后,我突然在每次页面加载时遇到多个绑定错误(“您不能将绑定多次应用于同一元素”)。
我使用 Knockout 已经有一段时间了,我非常有信心我不会对同一个元素多次应用绑定。我只调用了一次 applybindings,并且我通过调试该代码(并且还搜索此函数的任何其他实例)确认该语句也只运行一次。
在调试了这个问题一段时间后,我决定再次降级,到 Knockout 3.4.0。事实证明,该错误仅出现在最新版本 3.4.1 上。
还有其他人注意到这种行为吗?他们做了什么改变导致了这种情况?
即使我运行 KO 的调试版本,错误也无法告诉我它指的是什么元素,这使得弄清楚错误的实际来源是无望的。
我也不在调用applybindings(没有特定的元素目标)时使用第二个可选参数,因为无论如何我只这样做了一次。
【问题讨论】:
-
您需要更新到最新版本吗?
-
在发行说明中看不到任何相关内容 (github.com/knockout/knockout/releases/tag/v3.4.1) 您确定无法在简化示例中重现该问题吗?是否与
with绑定的更改有关? github.com/knockout/knockout/pull/1415 -
是的,请尝试在最小示例中重现错误
-
如果您使用 Knockout 的调试版本,请在引发错误的代码中放置一个断点(第 3247 行)。然后,您可以使用调试器查看它所在的元素以及到达那里所经过的路径。
-
如果这是由 Knockout 3.4.1 中的错误引起的,最好追踪它并在下一个版本中修复它。