你需要有一個計算的設置,以使事情工作
觀點:
<ul data-bind="foreach: { data: PersonData}">
<li> <a data-bind="attr: { data: Filter },visible:Filter!='people'" class="filterbtn">
<span data-bind="html: Name"></span>
<span data-bind="text: Age" class="age"></span>
</a>
</li>
</ul>
<div data-bind="foreach:data"> <span data-bind="html: Name"></span>
<span data-bind="text: Age" class="age"></span>
</div>
視圖模型:
var ViewModel = function() {
var self = this;
self.PersonData = ko.observableArray([{
'Filter': 'people',
'Name': 'cool',
'Age': '1'
}, {
'Filter': 'nope',
'Name': 'cooler',
'Age': '2'
}, {
'Filter': 'people',
'Name': 'hotter',
'Age': '3'
}])
self.data = ko.computed(function() {
return ko.utils.arrayFilter(self.PersonData(), function (item) {
return item.Filter === "people"; //do a case check here(if)
});
});
};
ko.applyBindings(new ViewModel());
工作撥弄了here
'顯示在另一個div'你的意思是顯示'ul'標籤?要麼 ?。樣品小提琴表示讚賞 –
@超酷很顯示外部ul標記 – Flash
嘗試像這樣http://jsfiddle.net/LkqTU/25260/。讓我知道,所以我可以發佈爲答案 –