2012-06-18 63 views
0

我試圖使用jQueryUI滑塊在集合中顯示/隱藏項目。KnockoutJS - 基於滑塊值隱藏div

滑塊返回值1到10,如果項目的「win」屬性高於滑塊的值,我想顯示該項目,反之亦然。

我有這麼遠:

http://jsfiddle.net/FloatLeft/uqv7D/

我希望這個代碼將設置項目的知名度

ko.utils.arrayForEach(viewModel.euroTeams, function(team) { 
    team.win = ko.observable(team.win); 
    team.lose = ko.observable(team.lose); 
    team.showTeam = team.win() > viewModel.wins(); 
}); 

模板:

<div class="team" data-bind="visible: showTeam"></div> 

回答

3

您需要創建一個計算的觀察值,以便showTeam的值也將更新。

下面是關於該主題的參考:http://knockoutjs.com/documentation/computedObservables.html

我已經更新了你的提琴:http://jsfiddle.net/uqv7D/17/

按照畸形的建議,我粘貼下面的代碼,以便有外部來源不依賴:

ko.utils.arrayForEach(viewModel.euroTeams, function(team) { 
    team.win = ko.observable(team.win); 
    team.lose = ko.observable(team.lose); 
    team.showTeam = ko.computed(function() { 
     return team.win() > viewModel.wins(); 
    }, this); 
}); 
+0

+1計算是要走的路 – WickyNilliams

+1

比我快幾秒。 :) 好答案。你可能想把實際的代碼放在答案中。我們不想依賴外部來源。 – freakish

+0

謝謝代達羅斯。那很棒。 – BrightonDev