gennemførelse af informationstiltag knockout

, inspirerende knockout,,,,, andel,,,,,,,,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss. denne post er en del af en række kaldes knockout koncist. adgang til eksterne data, knockout.js er ikke en informationskampagne bibliotek.alle knockout. er "automatiske ajourføringer, straks, anvendelse, når de underliggende data ændringer.for at give næring til nogen af de ændringer, vi har brug for at grave i knockout. er "interne affærer og manuelt skabe livlig overgange, ved hjælp af en anden javascript ramme, som jquery eller mootools.denne lektion stænger med jquery er animation rutiner, men de begreber, som anvendes til andre informationstiltag biblioteker samt.,,,,,,, afkast af vogn, for denne gang, vil vi vende tilbage til en forenklet version af vores vogn eksempel.skabe en ny html dossier med følgende indhold.vi vil ikke lave noget ajax anmodninger, så du kan sætte det på din computer.We will, however, be using jQuery’s animation routines, so be sure to include a link to your copy of the jQuery library., <html lang='en'> <head> <title>Animating Knockout.js</title> <meta charset='utf-8' /> <link rel='stylesheet' href='style.css' /> </head> <body> <h2> <table> <thead><tr> <th>Product</th> <th>Price</th> <th></th> </tr></thead> <tbody data-bind='foreach: items'> <tr> <td data-bind='text: name'></td> <td data-bind='text: price'></td> <td><button data-bind='click: $root.removeProduct'>Remove</button></td> </tr> </tbody> </table> <button data-bind='click: addProduct'>Add Beer</button> <script src='knockout-2.1.0.js'></script> <script src='jquery-1.7.2.js'></script> <script> function Product(name, price, tags, discount, details) { this.name = ko.observable(name); this.price = ko.observable(price); } function ShoppingCart() { var self = this; this.instructions = ko.observable(""); this.hasInstructions = ko.observable(false); this.items = ko.observableArray([ new Product("Beer", 10.99), new Product("Brats", 7.99), new Product ("røv", 1.49)]); this.addproduct = function() {. punkter. tryk (nyt produkt ("øl", 10.99)}; this.removeproduct = funktion (produkt) (self. punkter. ødelægge (produkt)}}; ko. applybindings (nye shoppingcart()); og lt; /manuskript > < /organ > < /html >, alt dette er en gennemgang af nu.vi har en observerbar vifte med en flok produkter, en, de, bindende, der viser hver enkelt af dem, og en knap til at tilføje flere punkter til den indkøbsvogn.,, liste callbacks, knockout.js er en magtfuld brugergrænseflade bibliotek i sig selv, men når man kombinerer det med animation kapacitet af en ramme, som jquery eller mootools, du er klar til at skabe virkelig fantastisk unesco 's statistiske kontor med en minimal fortjeneste.først skal vi se på gennemførelse af informationstiltag lister, og det næste afsnit indeholder en mere generel måde at animere opfattelse komponenter.,, de bindende har to callbacks ved navn, beforeremove, og afteradd.disse opgaver er udført før et punkt på dagsordenen er fjernet fra listen, eller efter at der er blevet føjet til listen.det giver os mulighed for at give næring til hvert punkt, før knockout.js manipulerer dom.tilføje callbacks på < tbody > element, som så:, < tbody data binder ='foreach: {data: produkter, beforeremove: hideproduct, afteradd: showproduct) > i stedet for en ejendom, vores, de bindende tager nu et objekt bogstaveligt som parameter.denne parameter er, data, ejendom, tyder på, at det system, du ønsker at gøre, og beforeremove og afteradd egenskaber til den ønskede callback funktioner.det næste, vi skal definere disse callbacks på shoppingcart viewmodel:, this.showproduct = funktion (del) (hvis (element.nodetype = = = 1) ($(del). hide(). fadein();}}; this.hideproduct = funktion (del) (hvis (element.nodetype = = = 1) ($(del). fadeout (function() {$(del). remove().})}};,, showproduct(), callback anvendelser jquery til nye liste poster gradvist blegne, og, hideproduct(), callback svigter dem, og så fjerner dem fra dom.begge funktioner, tager de berørte dom element, som deres første parameter (i dette tilfælde, er det en < tr > element).den betingede erklæringer, sikre, at vi arbejder med en ægte element og ikke blot en tekst node., bør føre en liste over poster, som er glat overgang til og fra listen.selvfølgelig, du er fri til at bruge nogle af jquery er andre overgange eller udføre skik efterbehandling i enten af callbacks.,, sædvane bindinger, for hvert, callbacks arbejde for gennemførelse af informationstiltag lister, men desværre andre bindinger ikke yde denne funktionalitet.så, hvis vi vil give næring til andre dele af brugergrænsefladen, vi skal skabe, sædvaner, skibindinger, der har animation byggede dem ned., sædvane bindinger arbejde ligesom knockout. er 'misligholdelse bindinger.for eksempel finder følgende områder:, < div > < p > < inputdata binder ='checked: hasinstructions type ='checkbox /> kræver specielle håndteringsinstruktioner < /p > < div > < textarea data binder ='visible: hasinstructions, værdi: vejledningen > < /textarea >, se rubrik optræder som et greb for, < textarea >,, men eftersom vi bruger, synlige, bindende, knockout.js brat tilføjer eller fjerner det fra..for at sikre en gnidningsløs overgang til, < textarea >,, vil vi skabe en skik bindende ringede visiblefade:, < textarea data binder ='visiblefade: hasinstructions, værdi: vejledningen >, selvfølgelig, det vil ikke virke, indtil vi kan tilføje skik binding til knockout.js.vi kan gøre det ved at tilføje et objekt, der definerer de bindende, ko.bindinghandlers, som vist i følgende kode stikprøve.dette sker også, at være, hvor alle de indbyggede spænder er defineret,., ko.bindinghandlers.visiblefade = {lokalitet: funktion (element, valueaccessor) (var - værdien = valueaccessor(). $(del) måles. (value())}, ajourføre: funktion (element, valueaccessor) (var - værdien = valueaccessor(); value()?$(del). fadein(): $(del). fadeout();}}, lokalitet, ejendom, angiver en funktion til at ringe, når knockout.js første møder den bindende.dette svar bør definere den oprindelige tilstand for opfattelse komponent og foretage nødvendige fælde aktioner (f.eks. registrering af tilfælde lyttere).for visiblefade, hvad vi skal gøre, er at vise eller skjule element er baseret på den aktuelle viewmodel.vi gennemførte dette ved hjælp af jquery er toggle() metode. det element, parameter er dom element er bundet, og valueaccessor, er en funktion, der vil vende tilbage, viewmodel ejendommen.i vort eksempel element vedrører < textarea > og valueaccessor() returnerer en henvisning til hasinstructions observerbare.,, ajourføre, ejendom, angiver en funktion til at udføre, når de tilknyttede observerede ændringer, og vores callback bruger værdien af, hasinstructions, at overgangen < textarea > i passende retning.husk, at du skal ringe til den observerede, at få sin nuværende værdi (dvs. value(), ikke værdi).men hvis hasinstructions var en normal javascript ejendom i stedet for en observerbar, ville dette ikke være tilfældet,.,, resumé på denne lektie, vi fandt to metoder til gennemførelse af informationstiltag knockout.js opfattelse komponenter.først har vi tilføjet callback metoder til, for hvert, bindende, og lad os overlade indsættelse og fjernelse af produkter til en brugerdefinerede funktion.det gav os mulighed for at integrere jquery er animeret overgange i vores knockout.js skabelon.så har vi tradition bindinger som et middel til at give næring til vilkårlige elementer. denne lektion fremlagt en fælles anvendelse af custom bindinger, men de er ikke begrænset til gennemførelse af informationstiltag - komponenter.skik bindinger, kan også anvendes til at filtrere data, som er indsamlet, lyt til sædvane begivenheder eller skabe genanvendelige widgets som net og bippet indhold.hvis du kan sammenfatte en opførsel i en lokalitet, og en ajourføring af funktion, kan du gøre det til en vane bindende.,, konklusion, den serie dækkede langt størstedelen af knockout.,, knockout.js er en ren javascript bibliotek, der gør, at det er nemt at skabe dynamiske data centriske brugergrænseflader.vi har lært at afsløre viewmodel egenskaber ved hjælp af observerbare fænomener, binde html elementer til de observerbare fænomener, forvalte brugerinput med interaktive bindinger, eksport, at data til en server-side manuskript, og der er stadig komponenter med skik bindinger.jeg håber, du er mere end villig til at flytte denne viden til den virkelige verden web ansøgninger. denne serie dækkede langt størstedelen af knockout.js api, men der er stadig en række nuancer tilbage at opdage.disse områder omfatter: skik skibindinger for aggregerede data typer, gas, additivolier for asynkron evaluering af beregnede observerbare fænomener, og manuelt at tilslutte sig et observeret begivenhederne.men alle disse avancerede emner, det burde ikke være nødvendigt for de typiske webapplikation.ikke desto mindre knockout.js indeholder et væld af muligheder for at udforske extensibility.,,, hvis du vil læse denne mødeperiode i denne bog, "> ebook form, sørg for at se på syncfusion websted.desuden tilbyder de en række gratis ebooks, ligesom denne her!,, denne lektion er et kapitel i, knockout - kort, en fri ebook fra holdet på syncfusion.,,



Previous:
Next Page: