Alkalmazási tippek és különösen
Miért kell Knockout.js?
- Legyen képes könnyen töltse ki az adat-interfész JSON-szerű tárgy (modell):
Kijátssza a változásokat:
Mi az attribútum adatok összerendelésű és kötések?
Knockout.js kínál egy sor standard kötések (kötések), amely lehetővé teszi, hogy módosítsa a stílus, a tartalom, a feldolgozók, és így tovább, ami egy varázslatos dolog. Ezen felül, akkor írj a horgony róla tökéletesen ismét le a dokkok.
Ez arra a következtetésre jutott egy leírást, hogy miért kell egy kiütéses, mást tudja, hogy melyik oldalon találni, és lépni a néhány dolog nem egyértelmű, hogy a kezdő.
Munka observableArray
Tegyük fel, hogy meg kell változni a tömb, amely aláírt néhány rakodók (vagy interfész). Például, ha van egy új tétel az adatokat a szerverre, és a ciklus hozzátéve, hogy a tömb.
Ha mindent a homlokára - a felvezető változásokat fog működni, mint ahányszor csak új elemek. És ez hatással lesz a teljesítmény. Példa a knockmeout.net
Így nem kell tennie:
Egy sokkal jobb módja:
Knockout.js szükség a projekt elsősorban kitöltő adatokat interfész. A leggyakoribb példa erre - egyre AJAX-lekérdezés JSON-adatokat a szerver és a renderelés, vagyis frissíteni tartalom nélkül betölteni az oldalt.
Ehhez szükségünk van az az oldal bizonyos részeit tudjuk helyettesíteni a felület, és töltse ki az adatokat - azaz, Meg kell sablonok különböző adatokat. Knockout.js képes együttműködni különböző minták (jQuery.tmpl, aláhúzás, natív) - fog összpontosítani az utóbbi (bár voltunk még írhatnak saját).
Nem natív sablon motorok nem támogatják a bizonyos kötések benne (különösen, nagyon szép. Felváltó modell keretében a sablon).
Ezért bizonyos esetekben kívánatos lenne, hogy egy sablont egy natív kiütéssel. Ehhez a lehetőségeket meg kell, hogy adja át templateEngine: ko.nativeTemplateEngine.instance. Ami érdekes (és nem említi a dokumentációt) - ez a paraméter átadhatók összefüggésben sablon.
A szoftver teszi sablonok, használja a következő parancsot:
Ez a parancs kényelmes hívni, például _create () metódus, hogy hozzon létre jquery-widgetek használó sablonok, és ez történik, az alábbiak szerint:
Ami sablont a hívást egy másik sablon segítségével a standard kötődési sablon:
TEMPLATENAME - sablon nevét, a gyakorlatban ez id blokk, amelyben az elrendezés a sablon:
Ebben az esetben a sablon motor nem „örökölt” hívás esetén a beágyazott sablonok - ha hívjuk egy sablont a sablon, a kezelt natív sablonozórendszerét, a belső mintát (ha nem adja meg a sablon kényszeríteni) még mindig használja az alapértelmezett sablon (például jQuery.tmpl, ha ez összefüggött a projekt).
Ezért a motort meg kell adni minden egyes alkalommal. De ez a funkció lehetővé teszi, hogy egyszerre különböző sablonozórendszer egymásba ágyazott sablonokat.
Sablonok nélkül gyökér elem
Néha nem kíván létrehozni egy külön konténer tartalmát a sablon nem derült ki, hogy a beágyazott csak egy eleme. A minta elem így szükség miatt a kötési vagy stílusok.
Ebben az esetben, a standard oldat egy knockout variáns (virtuális elemek):
Bár ő nem a dokumentációban leírt.
Hibakeresés sablonok
A leggyakoribb művelet programozáshoz - hibakeresés (bár egyesek azt állítják). A módszer az alábbi lehetővé teszi az üzenetek megjelenítéséhez a konzolra a vessző operátor és az üzemeltető csoportok (a részleteket ezekről üzemeltetők).
Változás összefüggésben használná és foreach - buktató
Tegyük fel, hogy van egy tömb, amely tartja a vonalat, hogy szeretnénk nyomon követni.
Array inicializálás így néz ki:
És azt akarjuk, hogy egy álló forma input szerkeszteni, hogy valami ehhez hasonló:
Ebben a felvétel a mezőket nem fog működni a két irányban - megváltoztatni a szöveget a területen nem befolyásolja a tömb elemei, de a változás a tömb elemeit befolyásolja a tartalmát a szöveges mezők. Példa a jsfiddle.
Ennek oka az, hogy a minta a fenti, lényegében megegyezik azzal a következő:
A: $ data - és itt jön "kicsomagolás" $ adatok: unwrapObservable ($ data) típusú kezelésnek $ data.somefield belül sablon dolgozni. De ez a kicsomagolás helyettesíti a $ data belül - az értékét. Hogyan lehet megkerülni ezt a kérdést - nem jött ki véletlenszerűen.
következtetés
Hibák a helyesírási és központozási személyes kérésére.