yo probamos este uno:¿Cómo puedo hacer un enlace condicional en knockout.js?
<div data-bind="attr: {class: itemSelected? 'selected' : 'unselected' }"></div>
Pero esto no funciona :)
yo probamos este uno:¿Cómo puedo hacer un enlace condicional en knockout.js?
<div data-bind="attr: {class: itemSelected? 'selected' : 'unselected' }"></div>
Pero esto no funciona :)
Asumiendo que tiene esto:
function viewModel() {
this.itemSelected = ko.observable(true);
}
ko.applyBindings(new viewModel());
Añadir un() después itemSelected para obtener el valor actual de la observable que puede usar con el operador ternario:
<div data-bind="attr: { class: itemSelected() ? 'selected' : 'unselected' }"></div>
Si no necesita asignar la clase seleccionada para el estado seleccionado no se puede hacer esto en su lugar:
<div data-bind="css: { selected: itemSelected }"></div>
A continuación trabajó para mí, Estaba usando los atributos css e id, para mí no funcionó si el atributo css no es el primero, así que mantén el atributo css como tu primer puño.
<div class="panel-collapse collapse" data-bind="css:{in:$index()==0}, attr: { id:'collapse'+$index()} ">
...
...
...
</div>
¿Has probado con un espacio en blanco entre itemSelected y "?" attr: {class: itemSelected? 'selected': 'unselected'} –
¿Tiene "whitespace" significado en knockout.js? – ozz
Lo hace cuando separa el signo de interrogación de la variable. – Tyrsius