Sök…


Anmärkningar

Det här avsnittet ger en översikt över vad knockout.js är och varför en utvecklare kanske vill använda den.

Den bör också nämna alla stora ämnen inom knockout.js och länka till relaterade ämnen. Eftersom dokumentationen för knockout.js är ny kan du behöva skapa initialversioner av relaterade ämnen.

versioner

Version anteckningar Utgivningsdatum
3.4.2 Bug fixar 2017/03/06
3.4.1 Bug fixar 2016/11/08
3.4.0 2015/11/17
3.3.0 2015/02/18
3.2.0 Introducerad component 2014/08/12
3.1.0 2014/05/14
3.0.0 Se även: uppgradera (från 2.x) anteckningar 2013/10/25
2.3.0 Senaste 2.x utgåvan 2013/07/08
2.0.0 2011-12-21
1.2.1 Sista 1.x släppning 2011-05-22
1.0.0 2010-07-05

Installation eller installation

Knockout är tillgängligt på de flesta JavaScript-plattformar, eller som ett fristående skript.

Inkludera som ett manus

Du kan ladda ner skriptet från dess nedladdningssida och sedan inkludera det på din sida med en vanlig script tag

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

Med hjälp av ett CDN

Du kan också inkludera knockout från antingen Microsoft CDN eller CDNJS

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

ELLER

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

Installera från kl

npm install knockout

valfritt kan du lägga till - --save parametern för att behålla den i din package.json fil

Installera från bower

bower install knockout

valfritt kan du lägga till - --save parametern för att behålla den i din bower.json fil

Installera från NuGet

Install-Package knockoutjs

Komma igång: Hej värld!

Skapa ett HTML-dokument och aktivera knockout.js

Skapa en HTML-fil och inkludera knockout.js via en <script> -tagg.

<!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>

Lägg till en andra <script> -tagg under knockout-skriptet. I den här skripttaggen initierar vi en visningsmodell och tillämpar databindningar i vårt dokument.

<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>

Fortsätt nu skapa en vy genom att lägga till HTML i kroppen:

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

När HTML-dokumentet öppnas och skripten körs, ser du en sida som säger Hello, World! . När du ändrar orden i <input> -elementen uppdateras texten <h1> automatiskt.


Hur den skapade filen fungerar

  1. En felsökningsversion av knockout laddas från en extern källa (cdnjs)

Koda:

<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-debug.js"></script>
  1. En visningsmodellinstans skapas som har observerbara egenskaper. Detta innebär att knockout kan upptäcka förändringar och uppdatera användargränssnittet i enlighet därmed.

Koda:

var appVM = new ViewModel();
  1. Knockout kontrollerar DOM för data-bind attribut och uppdaterar användargränssnittet med den medföljande visningsmodellen.

Koda:

ko.applyBindings(appVM);
  1. När den möter en text använder knockout egenskapens värde som det definieras i den bundna visningsmodellen för att injicera en textnod:

Koda:

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

Beräknade observerbara

Beräknade observerbara är funktioner som kan "titta" eller "reagera" på andra observerbara objekt i visningsmodellen. Följande exempel visar hur du visar det totala antalet användare och medelåldern.

Obs: Exemplet nedan kan också använda pureComputed () (introducerad i v3.2.0) eftersom funktionen helt enkelt beräknar något baserat på andra visningsmodellegenskaper och returnerar ett värde.

<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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow