我正在使用knockout.js为客户创建拖放日记,我刚刚切换到chrome测试,我在"Cannot read property 'childNodes' of undefined"
函数中遇到了这个神秘的错误parseBindingString
然而,这个模板在FireFox / IFE10中进行了测试和工作。
错误在css: { blackout: workingHours($parent.DaysArray(0), $parents[1].ViewDate()).startTime.getTime() == workingHours($parent.DaysArray(0), $parents[1].ViewDate()).finishTime.getTime() }
绑定上抛出,但是在调试器上下文中node
局部变量有4个注册子节点,因此淘汰必须尝试在这里进行一些严格的树导航,我的workingHours()
函数根本不需要,或者将blackout
类添加到当前节点。
我认为这只是因为在浏览器之间构建DOM的方式存在细微差别而在chrome中出现,但是有人可以就如何解决这类问题提供一些建议吗?或者要检查的事情?
<td data-bind="
css: {
blackout: workingHours($parent.DaysArray(0), $parents[1].ViewDate()).startTime.getTime() == workingHours($parent.DaysArray(0), $parents[1].ViewDate()).finishTime.getTime() }">
<div class="unallocated-booking">
<div class="status-bar-holder mini-status-bar-holder" data-bind="
template: {
name: 'unallocated-booking-template',
foreach: todaysBookings($parent.DaysArray(0), bookings, $parents[1].ViewDate()) }"/>
</div>
<div data-bind="
attr: {
'data-init-droppable': false },
class: {
droppable: isWorkDay( $parent.DaysArray(0), $parents[1].ViewDate() ) },
template: {
name: 'week-cell-template',
foreach: todaysBookings($parent.DaysArray(0), bookings, $parents[1].ViewDate()) }"/>
</td>
轻微一点(可能需要一个单独的问题)但具有讽刺意味的是我只尝试加载chrome,因为最后一个元素的attr
/ class
/ template
绑定似乎忽略了{ {1}}&amp; class
绑定,因为我添加了attr
绑定,我想在chrome中调试。但是因为我已经引起了所有人的关注。我已经认为我已经把它插在这里了:p。甚至可能是相关的,虽然我看不出我的语法问题。
答案 0 :(得分:1)
Knockout.js不是这个问题的原因
与getElementsByTagName()
在Chrome中的工作方式不同,因为它不需要(或在何处工作)指定搜索元素的命名空间。