Нокаут JS - CSS Связывание с тире в имени класса
У меня есть привязка данных в Knockout для применения класса CSS, если условие истинно. Когда я использую тире в имени класса (например, test-class), я получаю ошибку javascript.
Вот скрипка, которая демонстрирует проблему: http://jsfiddle.net/sgvem/2/
<p data-bind="text: property, css: { with-dash: property().length > 0 }"></p>
Есть ли способ добавить класс с тире с помощью Knockout JS?
Ответы
Ответ 1
Просто поставьте его в кавычки:
<p data-bind="text: property, css: { 'with-dash': property().length > 0 }"></p>
Здесь обновленная скрипка.
В качестве побочной заметки вам не нужен > 0
, так как a length
of 0
будет оцениваться до false
, а любая другая длина будет оцениваться до true
:
<p data-bind="text: property, css: { 'with-dash': property().length }"></p>
Ответ 2
Вы можете определить имя, используя '
Вот так:
<p data-bind="text: property, css: { 'with-dash': property().length > 0 }"></p>
Ваш скрипт, обновлен
Вот документы Knockout, объясняющие привязку css: http://knockoutjs.com/documentation/css-binding.html