KnockoutJS css и class в одной и той же привязке - PullRequest
0 голосов
/ 16 октября 2019

Несмотря на раздел в https://knockoutjs.com/documentation/css-binding.html я не смог использовать css и класс вместе, вместо этого я мог бы использовать две разные привязки css: http://jsfiddle.net/g9sot5qb/

Я делаю что-то не так или это документациянеточно?

<span class="cls1 cls2" data-bind="text: title,css: {active: active}, class: myClass" ></span>
<span class="cls1 cls2" data-bind="text: title,css: {active: active}, css: myClass" ></span>

1 Ответ

1 голос
/ 16 октября 2019

Привязка class является функцией Knockout версии 3.5.

Из замечаний к выпуску v 3.5 :

Поддержка привязки нового классастроки динамического класса.
Это позволяет вам использовать привязки css и класса вместе для поддержки обоих методов установки классов CSS.


Ваш jsfiddle использует более старую версию.

Также обратите внимание, что observable active должно иметь значение true, чтобы применить css class 'active'.

См. Пример (runnable) ниже, где оба classи css привязка активна.

var viewModel= {
  myClass: ko.observable('test'),
  title: ko.observable('Title'),
  active: ko.observable(true)
};

ko.applyBindings(viewModel);
.test{
  color: red
}

.active {
  font-size: 32px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.5.0/knockout-min.js"></script>

<span class="cls1 cls2" data-bind="text: title, css: {active: active}, class: myClass" ></span>
...