Knockout liaison JS-CSS avec tiret dans le nom de classe

J'ai une liaison de données dans Knockout pour appliquer une classe CSS si une condition est vraie. Lorsque j'utilise un tiret dans le nom de la classe (comme test-class), j'obtiens une erreur javascript.

Voici un violon qui illustre le problème: http://jsfiddle.net/sgvem/2/

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

Existe-t-il un moyen d'ajouter une classe avec un tiret en utilisant Knockout JS?

35
demandé sur Dismissile 2012-04-23 19:17:40

2 réponses

Il suffit de le mettre entre guillemets:

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

Voici unmis à jour fiddle .

, Comme une note de côté, vous n'avez pas besoin de la > 0 depuis length de 0 évaluera à false, et toute autre longueur d'évaluer à true:

<p data-bind="text: property, css: { 'with-dash': property().length }"></p>
52
répondu James Allardice 2012-04-23 15:19:57

Vous pouvez qualifier le nom en utilisant '

Comme ceci:

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

Votre violon, mis à jour

Voici les documents Knockout expliquant la liaison css: http://knockoutjs.com/documentation/css-binding.html

6
répondu Mikael Östberg 2012-04-23 15:32:47