2

好的,诚然,问题中的语法很糟糕,但这是内幕:

我在我的网站中使用以下内容:

  • 推特引导
  • 昏死
  • 杜兰达尔

我正在尝试将 CSS 类添加到复选框周围的外部标签(在复选框列表中),以便它可以突出显示选定的复选框。基本上代码是这样的:

<div data-bind="foreach:values">
    <label class="checkbox inline btn" data-bind="css: { }">
        <input type="checkbox" data-bind="attr: { value: text }, checked: $parent.checkedValues" /> 
        <span data-bind="text: text"></span>
    </label>
</div>

所以,我想要做的是将 btn-primary 类添加到选中的复选框的外部标签中。我没有把完整的视图模型放在这里,而是创建了一个小提琴:http: //jsfiddle.net/riceboyler/WEPRZ/1/

我认识到我可以使用 $data 对象来获取当前项目,但我不知道如何检查当前项目 ($data.text) 是否在 checkedValues observableArray 中。我确定这可能是我缺少的基本 Javascript,但是有没有办法在不使用计算值的情况下做到这一点?

4

2 回答 2

3

css您可以通过检查父级的 checkedValues 数组直接在绑定中执行此操作。

<label 
    class="checkbox inline btn" 
    data-bind="css: {'btn-primary': $parent.checkedValues.indexOf(text) > -1}">

见小提琴

于 2013-05-01T15:07:42.053 回答
0

你可以试试这个谓词:

$parent.checkedValues().indexOf($data.text) >= 0

我为你的小提琴创建了一个新版本。

我希望这有帮助。

于 2013-05-01T15:06:36.567 回答