KnockoutJS - Binding CSS

Questa associazione consente di definire classi CSS per gli elementi HTML DOM in base a determinate condizioni. Ciò è utile nel caso in cui sia necessario evidenziare alcuni dati a seconda di una situazione.

Sintassi

css: <binding-object>

Parametri

  • In caso di binding CSS statico, il parametro può essere nella forma di JavaScript Object, costituito da proprietà e dal suo valore.

    • Property qui si riferisce alla classe CSS da applicare e value può essere booleano true o false oppure un'espressione JavaScript o una funzione.

    • Classes può anche essere applicato dinamicamente utilizzando funzioni osservabili calcolate.

  • È anche possibile applicare più classi CSS contemporaneamente. Di seguito è riportato un esempio di come vengono aggiunte 2 classi all'associazione.

<div data-bind = "css: { 
   outOfStock : productStock() === 0, 
   discountAvailable: discount 
}">
  • I nomi delle classi possono anche essere specificati tra virgolette singole come "sconto disponibile".

  • 0 e null vengono trattati come valore falso. I numeri e altri oggetti vengono trattati come valore reale.

  • Se la proprietà ViewModel è osservabile, le classi CSS vengono decise in base al nuovo valore del parametro aggiornato. Se non è un valore osservabile, le classi vengono determinate solo una volta per la prima volta.

Esempio

Diamo un'occhiata al seguente esempio che dimostra l'uso dell'associazione CSS.

<!DOCTYPE html>
   <head>
      <title>KnockoutJS CSS binding</title>
      <script src = "https://ajax.aspnetcdn.com/ajax/knockout/knockout-3.1.0.js"
         type = "text/javascript"></script>
      
      <style>
         .outOfStock {
            color: red;
            font-weight: bold;
         }
      </style>
      
   </head>
   
   <body>
      <div data-bind = "css: { outOfStock : productStock() === 0 }">
         Product Details.
      </div>

      <script>
         function AppViewModel() {
            this.productStock = ko.observable(0);
         }
         
         var vm = new AppViewModel();
         ko.applyBindings(vm);
      </script>
      
   </body>
</html>

Produzione

Eseguiamo i seguenti passaggi per vedere come funziona il codice sopra:

  • Salva il codice sopra in formato css-bind.htm file.

  • Apri questo file HTML in un browser.

  • Le informazioni sul prodotto vengono visualizzate in modo normale quando la proprietà productStock è superiore a 0. Le informazioni sul prodotto diventano rosse e in grassetto. una volta che productStock diventa 0.