Подтвердить что ты не робот

Нокаут 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?

4b9b3361

Ответ 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