这是一个真正的拔毛者。 我将一些div移动到模板中而没有改变任何ko的datacontext,突然之间我有了可怕的" undefined不是一个函数"在模板中。
事实证明,这不是一个与缺失的观察者相关的东西,而是一些内在的东西:
看起来continuousNodeArray不是一个普通的数组,但它是一个jQuery对象数组(我假设只在这个特定的实例中,因为我相信应该是一个普通的数组)
所以我很想知道这是否是一个Knockout.js错误或我的模板中触发此行为的内容。我通过添加以下内容解决了这个问题:
jQuery.fn.shift = [].shift;
但我确定一定有其他事情要发生。任何线索?
答案 0 :(得分:3)
当您使用jquery.tmpl作为模板引擎时,这是已知的,而不是最近(10月8日)修复了错误。
请参阅github:Fix error in fixUpContinuousNodeArray when using jquery.tmpl
因此,如果您检查latest source,您现在会看到使用的是splice
而不是shift
:
但是它不包含在最新版本(3.2.0)中,所以你应该坚持使用你的解决方法,直到出现新版本。