KnockoutJS - 根据滑块值隐藏div

时间:2012-06-18 14:05:05

标签: knockout.js

我正在尝试使用jQueryUI滑块显示/隐藏集合中的项目。

滑块返回值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>

1 个答案:

答案 0 :(得分:3)

您需要创建一个计算的observable,以便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);
});