, het gebruik van backbone.js om contact met de manager: 2,,,,,,,,,, uitwisseling van aandelen, 23,,,,,,, de delen van het netwerk, maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' dit artikel niet missen, is een reeks contacten te backbone.js.build genoemd voor het beheer van backbone.js deel: lid 1 gebruik van contacten met backbone.js: manager van deel 3,,,, welkom terug bij de training van de twee delen. Het eerste deel van ons wat het verzamelen en controleren van model, de ruggengraat van het werk als zien hoe de individuele blootstelling van mening een van de belangrijkste oog is gebonden aan een verzameling, in deze handleiding, zullen we zien hoe we ons standpunt kunnen filteren op basis van de gebruiker, en hoe kunnen we nog een router gaf ons een URL fundamentele functies, we moeten een bron van een deel van het dossier, en we zullen dit een deel van de bestaande code gebouwd.Ik adviseer de eerste deel lezen, als je het nog niet,,,,, de inbreng van gebruikers reageren, je zou in het eerste deel van een ieder van ons model staan bekend als de indeling op basis van elk model, ongeacht de betrokken collega 's vriend merkt op dat de leden van de familie.Laten we nog slechts een element van onze meester zou denken dat de gebruikers op basis van deze soorten contact met filter, nu kunnen we hard code in onze keuze menu: //europa.eu.int /comm /en met de hand van elk van de verschillende soorten keuzes.Maar, dit is geen goed idee, als we daar door toevoeging van een nieuw type, of het schrappen van een bepaald type van alle contacten?We zijn nog niet in staat de toepassing van de toevoeging of schrapping van contacten (deel III spoiler alarm.In een vroeg stadium van de procedure de toepassing van ons, het beste is om dit soort dingen rekening te houden, zodat we kunnen gemakkelijk worden op basis van de bestaande vormen van de opbouw van een dynamische elementen te kiezen.We zullen de volgende pagina 's van een punt toegevoegd: //europa.eu.int /comm /; toevoeging van de volgende nieuwe elementen aan de container:, < hoofd > < div = "filter" > < etikettering > vertel me: < /etiket > < /div > < /hoofd >, doen we, < hoofd >, element als een algemene container waarin een andere container id, en een etiket, < > om een verklaring schrijven.En nu laten we bouwen, < de keuze van >, yuan.Ten eerste moeten we, directoryview, de toevoeging van twee nieuwe methoden Alma betreft. De eerste zal voor elk van de twee soorten van een unieke en zal de bouw van drop.Deze twee methoden moeten worden toegevoegd aan het einde van de functie van mening, gettypes: () {terug _. Uniq (deze collectie. Trek (""), de valse (type) {functie terug. Tolowercase ();});}, createselect: functie () {VAR = het filter. El vinden ("# filter"), de keuze van = $("< de keuze van />", (http: //europa.eu.int: "< opties > alle < /opties >"}); _. Elke (deze. Gettypes (), functionele (project) {VAR opties = $("< opties >" (waarde: het project. Tolowercase (), de tekst: het project. Tolowercase (}). Appendto (selectie);}); de keuze van de methode;}, we gettypes (), de eerste, de terugkeer van een scala aan het creëren van gebruik wordt onderstreept, uniq (). De methode is.Deze methode heeft een reeks parameters en de terugkeer van een nieuwe reeks van projecten, met inbegrip van de enige.- we gaan, uniq (). De methode is het gebruik van de ruggengraat, die pluck (), dit is een eenvoudige methode om de waarde van een eigenschap van een verzameling van alle modellen.We eigenschappen van belang is, het type, de aard van de situatie, om te voorkomen dat we later moeten wij ook de kwestie van de hervatting van de normale vormen voor de kleine.We kunnen met een functie die we, uniq (), de waarde van elk drie parameters, voordat zij door de comparator.De functie van de projecten die als parameter, dus we terug alleen kleine letters van het project.Een tweede argument, uniq (), stellen wij, valse, hier, is een reeks wordt vergeleken met de voor die soort aanduidingen, de tweede methode, createselect (), een beetje te groot, maar niet meer ingewikkeld.Het enige doel is het creëren van een nieuwe en de terugkeer van de keuze, < >, elementen, dan kunnen we de code, wordt deze methode uit andere delen van de wereld een nieuwe doos met elk van onze aard.We beginnen met de keuze van de nieuwe elementen van de standaard <, < opties >, en de tekst,,, en onderstreept, elke (), door elke waarde in de installatie, gettypes () terug te keren naar de methode.Voor elke post in de installatie kunnen creëren een nieuwe, < option>, element, die de tekst naar de waarde van de post (in de huidige lowercase) en dan voegt het aan de select> <,,,., eigenlijk van de te maken, < select>, element aan de Bladzijde, we kunnen nog een code aan onze meester view's, de - (), Captain, this.$el.find ("#filter voegt (") this.createSelect ()); en de container voor onze meester is in het oog duwde, $el, dat de ruggengraat voor een beperking van het automatisch aan onze klasse, dus we gebruiken dit te vinden de filter van de container en voegt, LT; selecteren, element. We gaan de pagina, als nu, wij moeten al onze nieuwe, < select>, element, met een optie voor elk van de verschillende soorten van -, namelijk de view, dus, we hebben nu onze, selecteren, menu, <We kunnen voegen bij de keuze van de standpunten uit te filteren.Om dit te bereiken, kunnen we gebruik maken van de belangrijkste oog, gebeurtenissen, de eigenschap van een gebruikersinterface gebeurtenis.Na de toevoeging van de volgende codes, renderselect (), de methode, de gebeurtenissen: {"wijziging van de keuze van het filter #": "filter"),,, evenementen, eigenschap die een object, sleutel: de waarde van de aangewezen evenementen, elke band en een bindende procedures voor de behandeling van type - incident.In dit geval, we zijn geïnteresseerd in, veranderingen, de gebeurtenissen worden ontslagen, < de keuze van het filter,elementen in een container.Object in elke waarde is de gebeurtenis worden gecombineerd; in dit geval wordt aangewezen, hebben we, filteren, als de verwerker, dan kunnen we het toevoegen van nieuwe procedures voor de behandeling van een filter: functie:, (e) {this.filtertype = e.currenttarget.value; deze trekker ("veranderen: de filter");}, Alles wat we nodig hebben, te doen, setfilter (), is de functie van het grote oog, een eigenschap die filter, stellen wij de waarde van de optie is gekozen. Dit is mogelijk door middel van currentTarget, namelijk de automatische overdracht, en de gebeurtenissen van de programma 's overal voorwerpen eigendom, zodra de goederen worden toegevoegd of vernieuwing kunnen we ook de trekker een gewoonte, veranderen, het gebruik van de naam en de gebeurtenissen een eigenschap.We kijken hoe we kunnen gebruik maken van deze gebeurtenissen in een fractie van een seconde, maar voor we beginnen, kunnen we aan de functie van de praktische uitvoering van het filter, setfilter (); na de toevoeging van de volgende code: methode, filterbytype: functie () {(this.filtertype = = = = = = = = = = = = = "als") {het resetten. Verzamelen. (contact);} {van anders. (contactpersoon, stilte. - {}: echt); var filter = this.filtertype, _ filter (filter =. This.collection.models, functies (project) {terug. (""). Tolowercase () = = = filter;}); dit punt. Verzamelen. Reset (filter);}}, wij eerst nagaan of de beheersing van mening, filter - en eigendom, als dat zo is, zijn we gewoon, en laat 'tHij verzamelt de integriteit van de gegevens van het model, opgeslagen in de contact - als eigendom, niet gelijk zijn, en alle, hebben we nog steeds opnieuw bijeen te roepen om toegang te krijgen tot alle contacten in het verzamelen, het is met het oog op de contacten tussen de verschillende soorten overschakelen, maar deze keer hebben we vastgesteld, stil, selectie, echt, (zie je waarom is het nodig dat een vermindering van de gebeurtenissen), en niet ontslagen, en dan opslag betreft, de lokale versie filter, prestaties, we kunnen verwijzen naar het op een auditie.We gebruiken onderstreepte, filter (filter, model), de methoden van gegevensverzameling., filter (), aanvaardt - filter en een auditie voor de uitvoering van elk element in de reeks worden gefilterd.De auditie is de huidige projecten voor de overdracht van een parameter, call - back - functie terug, echt, voor elk type, met een, de waarde van de goederen, kunnen we alleen maar opslag in een variabele.- type met een kleine, want voor dezelfde reden.Een call - back - project, is vals, omdat in het station verwijderd zodra de generator is het filteren van, laten we zeggen, reset (), een keer voor, na - filter.Nu zijn we klaar voor de toevoeging van de code, online, settype (), de methode, de filter, eigendom, filterbytype (), methoden, in combinatie met de gebeurtenissen., verzamelen, alsmede de bu gebeurtenissen aan onze interface gebruiken, evenementen, eigendom, kunnen wij ook de verzameling bindende gebeurtenis.In onze aanpak, setfilter (), openen we een speciaal geval, nu moeten we nog de code, bindend zal worden, filterbytype (), in dit geval de methode; voeg de volgende code van de - (), onze heer, van mening, dat de methode:, ("veranderen: de filter" als We this.filterbytype,); gebruik van de ruggengraat, op (), methoden om te luisteren naar onze op de gebeurtenissen.We zijn aangewezen, filterbytype (), voor de behandeling van deze gebeurtenis voor de functie van het gebruik van het tweede argument, op (), kan worden vastgesteld door middel van een auditie voor de vaststelling van de context, als de drie parameters.Dit, dit is het doel van de mening van de heer, in mijn functie van ons, filterbytype, te verzamelen, te vullen met alle modellen, of het filter, model.We kunnen ook gebonden aan het evenement, opnieuw te herstellen, model voor het verzamelen van voorbeelden.We kunnen ook in dit geval de aangewezen een leidinggevende functie, terwijl de grote dingen, we hebben een functie.Voeg de volgende regel direct na de gebeurtenissen, veranderingen, in combinatie met de verzameling,. In de ("reset", this.render, dit); in dit geval, we luisteren, opnieuw, de gebeurtenissen en de functie, en we hopen dat de methode voor het verzamelen, het (de).We moeten gebruik maken van het call - back - is aangewezen, (in het voorbeeld van de standpunten in de uitvoering van de bij de uitvoering) is.Als we niet de levering van, dit is de derde parameter, zullen we geen toegang hebben tot de verzameling, () methode, de hendel terug, gebeurtenissen, op dit punt, we moeten vinden, kunnen we de keuze van de doos te geven met ons contact subgroepen.We zijn geregeld, stilte, voor ons, filterbytype (), de methode is die mening is niet nodig wanneer we weer opnieuw wordt vastgesteld in de voorwaarden van de tweede beginnen.We moeten dit doen, dan kunnen we door middel van een soort filter en filteren van een ander type, zonder verlies van een model,., route, dus we hebben zo veel goed is, kunnen we ons model van het filter en de keuze van de doos.Maar als we gebruik kunnen maken van een filter verzameld hebt, is dat niet verschrikkelijk?De ruggengraat van de module voor het vermogen van onze routers, laten we eens kijken hoe, en omdat we al onze filter goed gestructureerde wijze de ontkoppeling, het is eigenlijk heel gemakkelijk de toevoeging van deze functie.Ten eerste moeten we de router module Vooraanzicht van de uitbreiding; na de toevoeging van de volgende code: var, de ruggengraat van contactsrouter =. Router. Verlengd ({route: {"filter /: -": "urlfilter"), urlfilter: functie (type) {directory.filtertype = type trekker ("veranderen; Richtl.: filter");}}); de definities van de kenmerken, de eerste in de overdracht van voorwerpen aan de router extend () en methoden, en dit is een tekst, elke sleutel is een URL 's met elke waarde is een functie als URL' s overeen.In dit geval, we zijn op zoek naar een website, het begin en het einde vanfilter, en niets anders.Filtreer na de URL van een deel van een bepaalde functie is door onze functie, in deze functie de totstandbrenging of verbetering van subjectiviteit, filteren, waardoor onze gewoonten veranderen, nogmaals, de gebeurtenissen.Dit is wat we moeten doen, om de filter functie, het gebruik van de website.We moeten ook het creëren van ons af, maar we kunnen een voorbeeld, door toevoeging van de volgende regel direct na de directoryview geconcretiseerd:,,, contactsrouter = nieuwe contactsrouter (VAR);, moeten we nu kunnen de URL, zoalsfilter /familie, en van mening te zijn show net contact met familie:,, dat is Cool, toch?Maar er is nog steeds een deel van de gebruikers niet zie, gebruik weten te maken van onze goede.???????We moeten een proces voor het bijwerken van de ui geval van de functie, < de keuze van de URL van elementen als bijwerking van dozen gebruikt. Om dit te doen, moeten twee stappen: ten eerste moeten we uit de geschiedenis van de dienst, we starten van toepassing, zodat de ruggengraat van de geschiedenis van onze steun, wordt het volgende toegevoegd in het script van de code rij rechts (we starten we direct na de router):, de ruggengraat. Geschiedenis. Start ();, vanaf dit moment, de ruggengraat toezicht zal houden op de URL - verandering.Nu, als we willen dat er na de bijwerking URL 's dingen, we bellen, lay (), we de router.Veranderen, filterbytype (), methoden, het lijkt te zijn dat, filterbytype: functie () {(this.filtertype = = = = = = = = = = = = = "als") {deze collectie. Reset (contact); < b > contactsrouter. Navigatie ("filter"); < /B > anders {} reset (contactpersoon. Stilte. {}: echt); var filter = this.filtertype, _ filter (filter =. This.collection.models, functies (project) {terug. ("') = = = = = = = = filter;}); deze collectie. Reset (filter) B > <; contactsrouter. Navigatie (" filter "+ filter); < /B >}} facultatief vak is gekozen voor het filteren van het verzamelen, URL' s zal worden aangepast, kan de gebruiker.Mark of delen van de achterkant van de website, en een browser en uit - knop zal tussen de navigatie staat.0,5 later ook voor de ruggengraat van de pushstate API -, maar om de server van de normale werkzaamheden moeten kunnen verlenen van de gevraagde bladzijde, we hebben geen verdeling van dit voorbeeld, het gebruik van normen in de geschiedenis van de module.,, samengevat, in deze handleiding, laten we eens kijken naar een paar belangrijke modules, met name de routers, historische en het geval van module.We kijken nu al met de ruggengraat van verschillende modules, zien we wat meer nadruk wordt gelegd op de methode, met inbegrip van het filter (), voor het filteren, we zitten we met de verzamelde model van een bepaald type. En, ten slotte, kijken we naar de router module, waardoor we de route door de toepassing van ons kan procedures voor de trekker met de wijze, en de geschiedenis kunnen we gebruik maken van geheugen staat en het behoud van vernieuwing, URL - fragment. Een beetje los te koppelen van de weg is de aard van onze functie van het filter; als we de toevoeging van filtratie door de selectie van de menu 's, het is op zo' n manier, dit is zeer snel en gemakkelijk te verschijnen na de toevoeging van een volledig nieuw filterEen filter (), voor de verandering.Dit is geen gewone met succes een van de sleutels tot de ontwikkeling, het onderhoud en de uitbreiding van de toepassing van de javascript.Als we willen, kunnen gemakkelijk worden toegevoegd aan een andere, volledig nieuwe methoden, het moet veranderen we filteren, in het volgende deel van deze reeks, zullen we terug en bekijken hoe we de werkzaamheden van het model, het model kunnen worden geschrapt, en de toevoeging van nieuwe, verzamelen.