Alkalmazási tippek és különösen

Miért kell Knockout.js?

  1. Legyen képes könnyen töltse ki az adat-interfész JSON-szerű tárgy (modell):
De ez a kötődés gyakran nem használják, nem változtatják meg a DOM, és fordítva, ha megváltoztatja a modell.
  • Létrehozásához bi-megfigyelhető (megfigyelhető) kötődnek interfész és a modell, azaz, valós idejű interface frissítésre kerül, ha módosítja a modellt, és a modell megváltozik a felület (pl dolgozik amikor szöveget formában). Van egy kivétellel, a beviteli mezők frissített modell csak akkor történhet meg, ha az esemény onblur (távolítsa el a fókuszt az elem), ez a helyzet lehet korrigálni előfizető a bemeneti esemény. illetve, hogy manuálisan frissíteni a modell. Példa a jsfiddle.
  • Extrák feliratkozni változások a modell. Kódot a dokumentáció:

    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.




    Kapcsolódó cikkek