如何在knockout.js中创建条件绑定?

时间:2012-07-22 18:12:39

标签: binding knockout.js

我试过这个:

<div data-bind="attr: {class: itemSelected? 'selected' : 'unselected' }"></div>

但它不起作用:)

2 个答案:

答案 0 :(得分:22)

假设你有这个:

function viewModel() {
    this.itemSelected = ko.observable(true);
}
ko.applyBindings(new viewModel());​

在itemSelected之后添加一个()以获取可以与三元运算符一起使用的observable的当前值:

<div data-bind="attr: { class: itemSelected() ? 'selected' : 'unselected' }"></div>​

http://jsfiddle.net/RK7Ty/


如果您不需要为非选定状态指定未选择的类,则可以改为:

<div data-bind="css: { selected: itemSelected }"></div>​

http://jsfiddle.net/RK7Ty/1/

答案 1 :(得分:0)

以下为我工作,我正在使用css和id属性,对我而言,如果css属性不是第一个属性,它确实无效,所以请将css属性保留为第一个属性。

<div class="panel-collapse collapse" data-bind="css:{in:$index()==0}, attr: { id:'collapse'+$index()} ">

...
...
...

</div>