2012-04-23 2 views
35

У меня есть привязка данных в Knockout для применения класса CSS, если условие истинно. Когда я использую тире в имени класса (например, test-class), я получаю ошибку javascript.Knockout JS - CSS Связывание с тире в имени класса

Вот скрипка, который демонстрирует проблему: http://jsfiddle.net/sgvem/2/

<p data-bind="text: property, css: { with-dash: property().length > 0 }"></p> 

Есть ли способ, чтобы добавить класс с тиром, используя Knockout JS?

ответ

52

Просто поместите его в кавычки:

<p data-bind="text: property, css: { 'with-dash': property().length > 0 }"></p> 

Вот updated fiddle.

Как примечание стороны, вам не нужна > 0 поскольку length из 0 будет вычисляться false, и любая другая длина будет вычисляться true:

<p data-bind="text: property, css: { 'with-dash': property().length }"></p> 
+0

Имел отметить ваш, как ответ для добавления хороших лакомого о длине :) – Dismissile

6

Вы можете квалифицировать имя с помощью "

Как это:

<p data-bind="text: property, css: { 'with-dash': property().length > 0 }"></p> 

Ваш Скрипки, updated

Вот Нокаут документы, объясняющие CSS связывания: http://knockoutjs.com/documentation/css-binding.html

Смежные вопросы