javascript - <!-- ko if : false --> throws Cannot read property '__ko__1380676672381' of null

标签 javascript knockout.js knockout-sortable

问题示例 jsFiddle

问题:
如果 !!$data.Visible() == false 那么它会抛出此错误

错误:

Uncaught TypeError: Cannot read property '__ko__1380676672381' of null knockout-2.3.0.debug.js:578

这里发生错误:

getAll: function (node, createIfNotFound) {
            var dataStoreKey = node[dataStoreKeyExpandoPropertyName];

代码:

<!-- ko if: !!$data.Visible() -->
    <div class="row-column" data-bind="text: $parent[$data.Key], attr: { style: 'width: ' + $data.Width() + 'px' }"></div>
<!-- /ko -->

最佳答案

编辑:

我之前的答案是不正确的,因为可排序绑定(bind)需要能够更新数组。因此,解决方案是不使用虚拟元素进行 if 绑定(bind)。

<div data-bind="if: $data.Visible()">
    <div>Im visible</div>
</div>

http://jsfiddle.net/mbest/5TJ2f/6/

引用文献:https://stackoverflow.com/a/14219177/1287183 , https://github.com/rniemeyer/knockout-sortable/issues/58

关于javascript - &lt;!-- ko if : false --> throws Cannot read property '__ko__1380676672381' of null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19128669/

相关文章:

node.js - 没有创建 bower_modules 文件夹

javascript - 需要来自捆绑库的单个模块(即 jquery-ui)

javascript - meteor :设计模式:为集合的每个字段(列)创建模板助手

javascript - 在函数中使用变量值作为变量名

javascript - sessionStorage 未在 JavaScript 中返回正确的结果

javascript - 如何防止 Prettier 将测试代码从 1 行破坏为多行

javascript - 如何在 Knockout.js 中使用带有过滤功能的用户输入

javascript - knockout JS : click event invoked on every Option in Select

javascript - 传入一个 observableArray 作为函数参数

jquery - 可排序的元素拖动到其他 DOM 元素下方