28 votes

Knockout JS - Liaison 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 à l'aide de Knockout JS?

41voto

James Allardice Points 81162

Mettez-le entre guillemets:

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

Voici un violon mis à jour .

En remarque, vous n'avez pas besoin du > 0 car un length de 0 sera évalué à false , et toute autre longueur évaluera à true :

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

5voto

Mikael Östberg Points 10487

Vous pouvez qualifier le nom en utilisant '

Comme ça:

 <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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X