我正在使用 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
类来说根本不是必需的到当前节点。
我认为这仅在 chrome 中出现,因为浏览器之间构建 DOM 的方式存在细微差异,但有人可以就如何解决此类问题提供一些建议吗?或要检查的东西?
<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
&绑定,因为我添加了绑定并且我想在 chrome 中进行调试。但是,由于我已经引起了你们所有 knockout.js 爱好者的注意,所以我想我会在这里插入它:p。尽管我看不出我的语法有问题,但甚至可能是相关的。template
class
attr
template