2017-05-27 100 views
0

我有一個淘汰賽模型,我得到的是我不明白的錯誤。淘汰賽「沒有定義X」錯誤

這是問題的代碼段:

<!-- 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錯誤。第一個解決得很好,沒有其他錯誤。奇怪的事情,該代碼實際工作,所以每當我改變searching變量true,第二圖像消失,第一個出現,然後當我更改回false,第一個出現和消失第二。

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

我沒有看到一個原因,但我懷疑'with'參與。嘗試'visible:!$ data.searching()'或'visible:!$ data.SearchModel.searching()'。 –

回答

0

我懷疑你需要檢查的SearchModel的前向with結合存在。

喜歡的東西:

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

或者更具體:

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

你也取決於你的視圖模型的層次結構,創建一個ko.pureComputed檢查SearchModel存在而在HTML使用如下代碼:

<!-- ko if: SomePureComputed -->

+0

儘管'with'綁定不會引發錯誤。第一個「搜索」參考已經解決,因此它必須知道「SearchModel」是什麼。它怎麼能找到第一個「搜索」而不是第二個? – Scott

+1

使用KO文檔中引用的方法進行快速測試,是使用內置的toJSON方法將模型作爲JSON轉儲到DOM。代碼:''


                            
    pimbrouwers
                                
                            
                        
                    

+0

當我把該'with'上述聲明,我得到'{ ... 「搜索」:假的, ... }' – Scott