Binding 如何在knockout.js中进行条件绑定?

Binding 如何在knockout.js中进行条件绑定?,binding,knockout.js,Binding,Knockout.js,我试过这个: <div data-bind="attr: {class: itemSelected? 'selected' : 'unselected' }"></div> 但它不起作用:)假设您有: function viewModel() { this.itemSelected = ko.observable(true); } ko.applyBindings(new viewModel());​ 在itemSelected之后添加一个()以获取可观察

我试过这个:

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


但它不起作用:)

假设您有:

function viewModel() {
    this.itemSelected = ko.observable(true);
}
ko.applyBindings(new viewModel());​
在itemSelected之后添加一个()以获取可观察对象的当前值,该值可与三元运算符一起使用:


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

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

以下内容对我有效,我同时使用了css和id属性,对我来说,如果css属性不是第一个属性,它就不起作用,所以请将css属性保留为第一个属性

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

...
...
...

</div>

...
...
...

您是否尝试过在itemSelected和“”之间使用空格?attr:{class:itemSelected?'selected':'unselected'}在knockout.js中“空格”有意义吗?当它将问号从变量中分离出来时会有意义。