淘汰" X未定义"错误

时间:2017-05-27 20:42:39

标签: javascript knockout.js

我有一个淘汰模型,我收到一个我不明白的错误。

以下是令人讨厌的代码部分:

<!-- ko with: SearchModel -->
...
            <img class="search-img" data-bind="visible: searching" src="@Url.Content("~/Static/Hypercube_Large_Light_Transparent.gif")" height="30" />
            <img id="searchIcon" class="search-img" data-bind="visible: !searching()" src="@Url.Content("~/Static/search_icon.png")" height="30" />
...
<!-- /ko -->

在SearchModel.js中:

...
this.searching = ko.observable(false);
...

我在对searching的SECOND引用上收到错误。第一个解决得很好,没有其他错误。奇怪的是,代码实际上是可行的,所以每当我将searching变量更改为true时,第二个图像就会消失,第一个图像会出现,然后当我将其更改回false时,第一个消失,第二个出现。

Uncaught ReferenceError: Unable to parse bindings.
Bindings value: visible: !searching()
Message: searching is not defined

1 个答案:

答案 0 :(得分:0)

我怀疑您需要在SearchModel绑定之前检查是否存在with

类似的东西:

<!-- ko if: SearchModel() -->

或更具体:

<!-- ko if: SearchModel() !== 'undefined' && SearchModel() !== null -->

您还可以根据视图模型层次结构创建ko.pureComputed以检查SearchModel是否存在,并在HTML使用代码中创建:

<!-- ko if: SomePureComputed -->