KnockoutJS - Stile vincolante

Style Binding consente di applicare uno stile in linea all'elemento HTML DOM manipolando l'attributo di stile dell'elemento invece di applicare classi CSS. Questa associazione richiede una coppia chiave-valore a causa dello stile inline.

Sintassi

style: <binding-object>

Parametri

  • L'oggetto JavaScript deve essere passato come parametro in cui il nome della proprietà fa riferimento all'attributo di stile ei valori si riferiscono ai valori desiderati da applicare agli elementi.

  • È inoltre possibile applicare più stili contemporaneamente. Supponiamo che tu abbia una proprietà di sconto nel tuo ViewModel e desideri aggiungerla, quindi il codice sarà simile al seguente:

<div data-bind = "style: { 
   color: productStock() < 0 ? 'red' : 'blue', 
   fontWeight: discount() ? 'bold' : 'normal' 
}>

Se productStock non è disponibile, il carattere diventa rosso. Altrimenti, diventa blu. Se lo sconto è impostato su true, i dettagli del prodotto diventeranno in grassetto. Altrimenti, rimarrà nel carattere normale.

  • Se la proprietà ViewModel è osservabile, gli stili vengono applicati a seconda del nuovo valore del parametro aggiornato. Se non è un valore osservabile, lo stile viene applicato solo una volta per la prima volta.

Esempio

Diamo uno sguardo al seguente esempio che dimostra l'uso dello stile Binding.

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

      <script type = "text/javascript">
         function AppViewModel() {
            this.productStock = ko.observable(30000) // initially black as positive value
            this.productStock(-10);                  // now changes DIV's contents to red
         };
         
         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 style-bind.htm file.

  • Apri questo file HTML in un browser.

  • Se productStock scende al di sotto di 0, i Dettagli del prodotto diventano rossi. Altrimenti, se lo stock è disponibile, diventa nero.

Osservazioni

Nomi di variabili JavaScript illegali

Nome stile CSS font-weightnon è consentito in JavaScript. Invece, scrivi comefontWeight (Il trattino nei nomi delle variabili non è consentito in JavaScript).

Fare clic qui per tutti gli attributi di stile JavaScript, disponibili anche sul sito ufficiale di KO.