Ricerca…


Osservazioni

Questa sezione fornisce una panoramica di cosa sia knockout.js e del perché uno sviluppatore potrebbe volerlo utilizzare.

Dovrebbe anche menzionare qualsiasi argomento di grandi dimensioni all'interno di knockout.js e collegarsi agli argomenti correlati. Poiché la documentazione di knockout.js è nuova, potrebbe essere necessario creare versioni iniziali di tali argomenti correlati.

Versioni

Versione Gli appunti Data di rilascio
3.4.2 Correzioni di bug 2017/03/06
3.4.1 Correzioni di bug 2016/11/08
3.4.0 2015/11/17
3.3.0 2015/02/18
3.2.0 Introdotto il binding dei component 2014/08/12
3.1.0 2014/05/14
3.0.0 Vedi anche: upgrade (da 2.x) note 2013/10/25
2.3.0 Ultima 2.x release 2013/07/08
2.0.0 2011-12-21
1.2.1 Ultima versione 1.x. 2011-05-22
1.0.0 2010-07-05

Installazione o configurazione

Knockout è disponibile sulla maggior parte delle piattaforme JavaScript o come script autonomo.

Includi come script

Puoi scaricare lo script dalla sua pagina di download , quindi includerlo nella tua pagina con un script tag standard

<script type='text/javascript' src='knockout-3.4.0.js'></script>

Utilizzando un CDN

Puoi anche includere l'eliminazione diretta da Microsoft CDN o CDNJS

<script type='text/javascript' src='//ajax.aspnetcdn.com/ajax/knockout/knockout-3.4.0.js'></script>

O

<script type='text/javascript' src='//cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-min.js'></script>

Installa da npm

npm install knockout

opzionalmente è possibile aggiungere il parametro --save per mantenerlo nel file package.json

Installa da pergola

bower install knockout

opzionalmente è possibile aggiungere il parametro --save per mantenerlo nel file bower.json

Installa da NuGet

Install-Package knockoutjs

Per iniziare: Hello world!

Creazione di un documento HTML e attivazione di knockout.js

Crea un file HTML e includi knockout.js tramite un tag <script> .

<!DOCTYPE html>
<html>
<head>
    <title>Hello world! (knockout.js)</title>
</head>
<body>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-debug.js"></script>
</body>
</html>

Aggiungi un secondo tag <script> sotto lo script ad eliminazione diretta. In questo tag script, inizializzeremo un modello di visualizzazione e applicheremo i binding di dati al nostro documento.

<script>
  var ViewModel = function() {
    this.greeting = ko.observable("Hello");
    this.name = ko.observable("World");

    this.appHeading = ko.pureComputed(function() {
      return this.greeting() + ", " + this.name() + "!";
    }, this);
  };

  var appVM = new ViewModel();

  ko.applyBindings(appVM);
</script>

Ora, continua a creare una vista aggiungendo del codice HTML al corpo:

<section>
  <h1 data-bind="text: appHeading"></h1>
  <p>Greeting: <input data-bind="textInput: greeting" /></p>
  <p>Name: <input data-bind="textInput: name" /></p>
</section>

Quando il documento HTML viene aperto e gli script vengono eseguiti, vedrai una pagina che dice Hello, World! . Quando cambi le parole negli elementi <input> , il testo <h1> viene aggiornato automaticamente.


Come funziona il file creato

  1. Una versione di debug di knockout viene caricata da una fonte esterna (cdnjs)

Codice:

<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-debug.js"></script>
  1. Viene creata un'istanza viewmodel con proprietà osservabili . Ciò significa che knockout è in grado di rilevare le modifiche e aggiornare l'interfaccia utente di conseguenza.

Codice:

var appVM = new ViewModel();
  1. Knockout controlla il DOM per gli attributi di associazione dei data-bind e aggiorna l'interfaccia utente utilizzando il viewmodel fornito.

Codice:

ko.applyBindings(appVM);
  1. Quando incontra un binding di text , knockout usa il valore della proprietà così come è definito nel viewmodel associato per iniettare un nodo di testo:

Codice:

<h1 data-bind="text: appHeading"></h1>

Osservabili calcolati

Le osservabili calcolate sono funzioni che possono "guardare" o "reagire" ad altri osservabili sul modello di vista. L'esempio seguente mostra come visualizzare il numero totale di utenti e l'età media.

Nota: l'esempio seguente può anche fare uso di pureComputed () (introdotto in v3.2.0) poiché la funzione calcola semplicemente qualcosa in base ad altre proprietà del modello di vista e restituisce un valore.

<div>
  Total Users: <span data-bind="text: TotalUsers">2</span><br>
  Average Age: <span data-bind="text: UsersAverageAge">32</span>
</div>
var viewModel = function() {

    var self = this;

    this.Users = ko.observableArray([
        { Name: "John Doe", Age: 30 },        
        { Name: "Jane Doe", Age: 34 }
    ]);

    this.TotalUsers = ko.computed(function() {
        return self.Users().length;
    });

    this.UsersAverageAge = ko.computed(function() {
        var totalAge = 0;
        self.Users().forEach(function(user) {
            totalAge += user.Age;
        });
   
        return totalAge / self.TotalUsers();
    });
};

ko.applyBindings(viewModel);


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow