knockout.js Zelfstudie
Aan de slag met knockout.js
Zoeken…
Opmerkingen
Deze sectie geeft een overzicht van wat knockout.js is en waarom een ontwikkelaar het misschien wil gebruiken.
Het moet ook alle grote onderwerpen binnen knockout.js vermelden en een link naar de gerelateerde onderwerpen bevatten. Aangezien de documentatie voor knockout.js nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.
versies
Versie | Notes | Publicatiedatum |
---|---|---|
3.4.2 | Bugfixes | 2017/03/06 |
3.4.1 | Bugfixes | 2016/11/08 |
3.4.0 | 2015/11/17 | |
3.3.0 | 2015/02/18 | |
3.2.0 | Geïntroduceerd component bindend | 2014/08/12 |
3.1.0 | 2014/05/14 | |
3.0.0 | Zie ook: upgrade (vanaf 2.x) notities | 2013/10/25 |
2.3.0 | Laatste 2.x release | 2013/07/08 |
2.0.0 | 2011-12-21 | |
1.2.1 | Laatste 1.x release | 2011-05-22 |
1.0.0 | 2010-07-05 |
Installatie of instellingen
Knockout is beschikbaar op de meeste JavaScript-platforms of als een zelfstandig script.
Opnemen als een script
U kunt het script downloaden van de downloadpagina en het vervolgens opnemen in uw pagina met een standaard script tag
<script type='text/javascript' src='knockout-3.4.0.js'></script>
Een CDN gebruiken
U kunt ook knock-out van Microsoft CDN of CDNJS opnemen
<script type='text/javascript' src='//ajax.aspnetcdn.com/ajax/knockout/knockout-3.4.0.js'></script>
OF
<script type='text/javascript' src='//cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-min.js'></script>
Installeren vanaf npm
npm install knockout
optioneel kunt u de parameter --save
toevoegen om deze in uw package.json
bestand te houden
Installeer vanaf prieel
bower install knockout
Optioneel kunt u de toevoegen --save
parameter om het in je houden bower.json
bestand
Installeren vanaf NuGet
Install-Package knockoutjs
Aan de slag: Hallo wereld!
Een HTML-document maken en knockout.js inschakelen
Maak een HTML-bestand en neem knockout.js
via een <script>
-tag.
<!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>
Voeg een tweede <script>
-tag toe onder het knockout-script. In deze script-tag initialiseren we een weergavemodel en passen we gegevensbindingen toe op ons document.
<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>
Ga nu verder met het maken van een weergave door wat HTML aan de body toe te voegen:
<section>
<h1 data-bind="text: appHeading"></h1>
<p>Greeting: <input data-bind="textInput: greeting" /></p>
<p>Name: <input data-bind="textInput: name" /></p>
</section>
Wanneer het HTML-document wordt geopend en de scripts worden uitgevoerd, ziet u een pagina met de tekst Hallo, Wereld! . Wanneer u de woorden in de elementen <input>
wijzigt, wordt de tekst <h1>
automatisch bijgewerkt.
Hoe het gemaakte bestand werkt
- Een foutopsporingsversie van knock-out wordt geladen vanaf een externe bron (cdnjs)
Code:
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-debug.js"></script>
- Er wordt een viewmodel-instantie gemaakt met waarneembare eigenschappen. Dit betekent dat knock-out in staat is om veranderingen te detecteren en de gebruikersinterface dienovereenkomstig bij te werken.
Code:
var appVM = new ViewModel();
- Knockout controleert de DOM op
data-bind
en werkt de gebruikersinterface bij met behulp van het meegeleverde viewmodel.
Code:
ko.applyBindings(appVM);
- Als het een tegenkomt
text
bindend, knock-out maakt gebruik van de waarde van het pand zoals het is gedefinieerd in de gebonden viewmodel om een tekst knooppunt injecteren:
Code:
<h1 data-bind="text: appHeading"></h1>
Berekende waarnemingen
Berekende observables zijn functies die kunnen "kijken" of "reageren" op andere observables op het viewmodel. Het volgende voorbeeld laat zien hoe u het totale aantal gebruikers en de gemiddelde leeftijd weergeeft.
Opmerking: het onderstaande voorbeeld kan ook gebruik maken van pureComputed () (geïntroduceerd in v3.2.0) omdat de functie eenvoudig iets berekent op basis van andere eigenschappen van het viewmodel en een waarde retourneert.
<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);