2014-11-02 88 views
0

我在使用KO進行搜索時遇到問題。它與我的模板綁定,但現在與聯繫人,如何解決這個問題?搜索,使用knockout進行篩選

這是應用程序:http://jsfiddle.net/ovesyan19/uc8ubcy8/10/

<input data-bind="textInput: filter" class="search_input form-control input-lg" maxlength="18" placeholder="Search..."> 


<div class="cl_wrapper"> 
    <div class="contacts" data-bind="template: {name: 'contactTemplate', foreach: filteredContacts}"></div> 
</div> 



self.filter = ko.computed({ 
    read: function(data){ 
     if(!data || data == 'undefined') { 
      self.filteredContacts = self.contacts; 
     } 
    }, 
    write: function (data) { 
     var x = ko.utils.arrayFilter(self.contacts(), function (item) { 
      return item.conName().toLowerCase().indexOf(data.toLowerCase()) >= 0; 
     }); 
     self.filteredContacts(x); 
    } 
}); 

我已經找到了解決方案,但它仍然有一個問題。當我按鍵過濾工作正常,但是當我開始刪除字母時,它不會顯示我的聯繫人列表。我怎樣才能解決這個問題?

+1

有人能幫忙嗎? – ovesyan 2014-11-02 21:47:21

+0

旁註;我不認爲任何人使用「dependentObservable」太 – Retsam 2014-11-04 02:32:10

+0

@Retsam你有任何想法更新的問題? – ovesyan 2014-11-09 13:00:23

回答

0

也許你需要將你的dependentObservable重命名爲'contacts'以外的東西,因爲你已經有一個名字相同的observableArray了?

self.filteredContacts = ko.dependentObservable(function(){ 

,改變過程中的數據綁定...

foreach: filteredContacts 
+0

是的,它需要在js文件中更改,但在html中,如果我更改爲「foreach:filt_cont」,它將不會應用綁定,因爲它是我的模板。 – ovesyan 2014-11-02 11:14:29