1
我有一個下拉菜單,由ul/li/a標籤(Bootstrap)製成,在Knockout中動態綁定。我正在爲它添加一個功能,根據您輸入的內容進行過濾,方法是設置li的可見性,如果其選擇與過濾器字符串不匹配。這工作正常,但如果他們都不匹配我想顯示某種「沒有結果」div /消息。我還沒有找到一個好方法來檢查是否所有的都不可見。敲除檢測是否有任何在foreach中可見
相關JS:
self.filteredOptions = function (e) {
return $(e).find("a").text().toLowerCase().startsWith(self.filterString());
}
相關HTML:
<ul data-bind="foreach: ddlOptions">
<li data-bind="visible: $parent.filteredOptions($element)">
<a href="#" data-bind='event:{ click: function(){ $parent.Selection(Option)}}, attr:{"data-value": ID}, text: Option'></a>
</li>
</ul>
<div> **If dropdown empty make this appear** </div>
ddlOptions
是物體的像[{ID : "123", Option: "option1"}, ..]
數組所以最好這將是很好對消息做出頭像visible: ddlOptions().length == 0
但我只是隱藏這些鋰標籤數據實際上並沒有改變。是否有一種優雅的方式來檢查是否仍然可見?
哇非常乾淨謝謝!出於某種原因,我沒有考慮改變我使用的原始ddlOptions,我一直試圖爲過濾後的選項添加一個新的observable或list。這好多了。 – DasBeasto