Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebben a szakaszban a HTML, a JavaScript és a Knockout.js kódtár használatával hozza létre a kliensoldalt az alkalmazáshoz. Az ügyfélalkalmazást a következő szakaszokban fogjuk létrehozni:
- A könyvek listájának megjelenítése.
- Egy könyv részleteinek megjelenítése.
- Új könyv hozzáadása.
A Knockout-kódtár a Model-View-ViewModel (MVVM) mintát használja:
- A modell az üzleti tartományban lévő adatok kiszolgálóoldali ábrázolása (esetünkben könyvek és szerzők).
- A nézet a bemutató réteg (HTML).
- A nézetmodell egy JavaScript-objektum, amely a modelleket tartalmazza. A nézetmodell a felhasználói felület kód absztrakciója. Nem ismeri a HTML-reprezentációt. Ehelyett a nézet absztrakt funkcióit jeleníti meg, például a "könyvek listáját".
A nézet adathoz kötött a nézetmodellhez. A nézetmodell frissítései automatikusan megjelennek a nézetben. A nézetmodell eseményeket is lekéri a nézetből, például gombkattintásokat.
Az ábra bemutatja a szerveroldali web A P I-t és az ügyfél oldali J S O N modellt, amelyek A J A X segítségével összekapcsolódnak, valamint a nézetmodellt és a H T M L nézetet, amelyek adatközvetítéssel vannak összekötve.
Ezzel a módszerrel egyszerűen módosíthatja az alkalmazás elrendezését és felhasználói felületét, mivel kód újraírása nélkül módosíthatja a kötéseket. Megjelenítheti például az elemek <ul>listáját, majd később táblázattá módosíthatja.
A Knockout könyvtár hozzáadása
A Visual Studióban az Eszközök menüben válassza a NuGet Package Manager lehetőséget. Ezután válassza a Package Manager-konzolt. A Package Manager konzolablakban adja meg a következő parancsot:
Install-Package knockoutjs
Ez a parancs hozzáadja a Knockout-fájlokat a Szkriptek mappához.
A nézetmodell létrehozása
Adjon hozzá egy app.js nevű JavaScript-fájlt a Szkriptek mappához. (A Megoldáskezelőben kattintson a jobb gombbal a Szkriptek mappára, válassza a Hozzáadás, majd a JavaScript-fájl lehetőséget.) Illessze be a következő kódot:
var ViewModel = function () {
var self = this;
self.books = ko.observableArray();
self.error = ko.observable();
var booksUri = '/api/books/';
function ajaxHelper(uri, method, data) {
self.error(''); // Clear error message
return $.ajax({
type: method,
url: uri,
dataType: 'json',
contentType: 'application/json',
data: data ? JSON.stringify(data) : null
}).fail(function (jqXHR, textStatus, errorThrown) {
self.error(errorThrown);
});
}
function getAllBooks() {
ajaxHelper(booksUri, 'GET').done(function (data) {
self.books(data);
});
}
// Fetch the initial data.
getAllBooks();
};
ko.applyBindings(new ViewModel());
A Knockoutban az osztály engedélyezi az observable adatkötést. Ha egy megfigyelhető tartalma megváltozik, a megfigyelhető értesíti az összes adathoz kötött vezérlőt, hogy magukat frissíteni tudják. (Az observableArray osztály a megfigyelhető tömbverzió.) Első lépésként a nézetmodellnek két megfigyelhetője van:
-
booksa könyvek listáját tartalmazza. -
errorhibaüzenetet tartalmaz, ha egy AJAX-hívás meghiúsul.
A getAllBooks metódus AJAX-hívást indít a könyvek listájának lekéréséhez. Ezután leküldi az eredményt a books tömbbe.
A ko.applyBindings metódus a Knockout kódtár része. A nézetmodellt paraméterként használja, és beállítja az adatkötést.
Szkriptköteg hozzáadása
A Bundling a ASP.NET 4.5 egyik funkciója, amely megkönnyíti több fájl egyetlen fájlba való összevonását vagy kötegelését. Az összekapcsolás csökkenti a kiszolgálóra irányuló kérések számát, ami javíthatja az oldalak betöltési idejét.
Nyissa meg a fájlt App_Start/BundleConfig.cs. Adja hozzá a következő kódot a RegisterBundles metódushoz.
public static void RegisterBundles(BundleCollection bundles)
{
// ...
// New code:
bundles.Add(new ScriptBundle("~/bundles/app").Include(
"~/Scripts/knockout-{version}.js",
"~/Scripts/app.js"));
}