[Powered by Google Translate] [Seminar] [Javascript okviri: Zašto i kako] [Kevin Schmid] [Sveučilište Harvard] [Ovo je CS50.] [CS50.TV] Pozdrav, svima. Dobrodošli na seminaru JavaScript okvire. Moje ime je Kevin, a danas ću se govori o JavaScripta okvirima, , a cilj ovog seminara je da te ne bi, recimo, svladati određeni okvir po sebi ali da vam široki uvod u nekoliko okvira i pokazati zašto smo ikada željeli koristiti okvir. Prije nego što sam to učiniti, ja ću dati malo pozadinu u JavaScriptu, , a onda ćemo ga odvesti od tamo. Mi ćemo započeti provedbu do-do listu. Evo našeg popisa zadataka za danas. To je vrsta smiješno. Moramo provesti popisa obveza u JavaScriptu. To je ono što će izgledati, tako da je naš prvi cilj. Nećemo koristiti okvir za to. Idemo kod JavaScripta i dobiti popis obveza na posao. Onda ćemo poboljšati dizajn bez okvira. Idemo raspravljati o raznim stvarima koje možemo učiniti sa samo JavaScript sama kako bi naši to-do liste malo više dobro osmišljen. Onda ćemo baciti u nekim jQuery, a onda ćemo gledati na isto to-do liste, Samo provodi u različitim okvirima, a mi ćemo raspravljati  pro i kontra na putu. Počnimo provedbi kako to-do liste. Recimo da si dao ovaj HTML. Ja ću napraviti ovaj malo manji. Kao što možete vidjeti, ja imam malo glavom koji kaže todo a mali okvir u kojem mogu unijeti opis popisu obveza a zatim novi gumb stavke, tako da ćemo pokušati unijeti novi todo na ovom popisu. Daj seminar JavaScript okvire, i ja sam pogoditi nove stavke. Ja se tu JavaScript upozorenje koje kaže mi provedbu. Moramo ga provesti. Idemo provjeriti kod za to, i HTML i JavaScript. Evo našeg HTML. Kao što možete vidjeti ovdje, ovdje je naš mali Todos header. To je stvar da je podebljano na vrhu, a onda imamo ulazni okvir s rezerviranog mjesta, i onda postoji određeni atribut ove gumb koji poziva ovu funkciju addTodo. Želite li itko pogoditi što je to na klik se označava? [Studentski nečujno odgovora] Dobro, na klik je vrsta od poput nekog događaja, kao klikom miša je samo događaj, i što radimo mi smo se vezali slučaju da kliknete na gumb za izvršavanje te funkcije. AddTodo je ovaj događaj rukovatelj za kliknete na taj gumb. Kao što možete vidjeti, kad sam pritisnite gumb nove stavke klik na event dobiva otkaz, a ova funkcija dobiva zove. Pogledajmo funkciju. Kao što možete vidjeti, ovdje je moj JavaScript kôd dosad. Ono što ja imam na vrhu je globalna struktura podataka za moju to-do liste. To izgleda kao niz. To je samo prazna polja. I tada sam addTodo funkciju koja smo ranije vidjeli, i jedini redak koda u je ovo upozorenje. Ona upozorava me provesti, a onda imam 2 zadatke pri ruci. Moram dodati todo na tu globalnu strukturu podataka, i onda želim izvući na to-do list. Ništa previše fancy samo još, ali JavaScript vi svibanj biti upoznati s, pa ću ići sporo i pregled osnove JavaScripta tom putu. Dajmo ovo metak. Recimo da korisnik unese nešto u tom okviru. Upravo sam upisali nešto u ovdje, tekst. Kako mogu sortirati na pristup koji kroz tekst JavaScript? Ne zaboravite da JavaScript, jedna od njegovih temeljnih značajki je da nam daje To programsko pristup DOM. To nam omogućuje pristup elemente i njihova svojstva ovog stvarne HTML. Način na koji smo to učiniti s golim kostima JavaScript je zapravo možemo koristiti funkciju u JavaScriptu zove getElementByID. Želim pohraniti tekst koji je unesen tamo u nekoj varijabli, pa ću reći novu varijablu nazvanu new_todo, i ja ću dobiti taj element. Ova je funkcija,. GetElementByID. I sad ja dobivam element po ID, tako da trebam ID tog tekstualnog okvira, pa sam mu dao osobnu new_todo_description. Tako ću dobiti element. To je moj argument za tu funkciju, da odredite što ID doći. I to je element u HTML-u, a ima svojstva. Vidjeli ste to. Oni su atributi. Atribut teksta elementa koji pohranjuje korisnikov unos naziva vrijednost. Spasio sam vrijednost tog tekstualnog okvira sada, u ovom varijablu pod nazivom new_todo. Sada imam programski pristup ovom varijablu, što je vrsta cool jer sada ono što ja mogu učiniti je da možete ga dodati na moj do-do listu. Način na koji ćemo to učiniti u JavaScript-i ne brinite ako niste upoznati s ovim, ali samo prolazi kroz njega je todos.push jer to je ime moje globalne strukture podataka ovdje, i ja ću gurnuti new_todo. To je super jer sad sam ga dodao u moj JavaScript zastupljenost da to-do list. Ali sad kako sam ga dobiti natrag u HTML? Moram pronaći način kako bi se riješili da ga gurnuti natrag. Drugim riječima, nekako sam se izvući to. Ono što ćemo učiniti je da ćemo povući popisa obveza. Trebam li ažurirati druge HTML na toj stranici, , a kao što možete vidjeti, ja sam napustio ovaj mali kontejner ovdje, to djelilo od stranice čiji je ID todos, i ja ću staviti popisa obveza postoji. Prvo ću ga rasprodati, jer, kažu, bilo je stara to-do list ima. Ja sam dobivanje tog elementa prema ID opet, a ja sam pristup unutarnji HTML tog elementa, i ja ću to potvrditi. Ako smo napustili ovaj kod kao što je to, mi bismo vidjeti praznu ništa pri a sada želim početi renderiranje moj novi popisa obveza. Ja zapravo idem da izbrišu moj do-do listu. Sada unutarnje HTML unutar tog todos div je potpuno jasna, i sad trebam početi dodavanjem moj popis. Prva stvar koju želim dodati leđa je neuređen popis oznaka, koji u osnovi označava da je ovo početak jedne neuređen popisu. Sada za svaki element u mom todos niz želim isprintati unutar tog HTML. Želim ga dodati na dnu tog popisa. Baš kao u C, ja mogu koristiti za petlje, i ja ću početi početkom mom popisu elementa na 0, a ja ću ići sve do duljine popisa. Mi zapravo može dobiti duljinu niza u JavaScriptu koristeći duljina imovine. Uglavnom ja ću učiniti nešto vrlo slično unutar ovog ispisati iz tog elementa. Ja ponovno mogu pristupiti todos DIV, unutarnje HTML vlasništvo, da je a ja ću dodati na ovu novu stavku popisa, te da će biti okružen ovo Li tag, a ja idem da spojite s + operatora, i da je i-ti element polja mom todos, a onda ću zatvoriti tu oznaku. Sada za svaki element ćemo dodati novi zapis popisa. I onda sve što stvarno trebate učiniti je zatvoriti tu oznaku. Samo mi treba zatvoriti kako neuređen popis oznaku. Da li dobiti osjećaj za kako se to radi? To otvara cijeli popis. To dodaje pojedinačne elemente iz todos popisa do popisa, a zatim da zatvara cijeli popis, i to je moj addTodo funkciju. Ja zapravo početi dobivanje todo iz tekstualnog okvira. I dodati da je u Todos niz, a onda sam ponovno donijeti popisa obveza. Sada mogu dodavati stavke na moj popis. To je uzbudljivo, jer u samo nekoliko linija koda smo u osnovi ste napravili za napraviti popis gdje možemo dodati stavke. Sjajno. To je vrsta osnovni uvod u JavaScriptu. Ne brinite previše o sintaksi za sada, , ali mislim o tome konceptualno. Imali smo neke HTML-a. Mi smo imali tekstualni okvir na stranici da je u osnovi dozvoljeno korisnik za unos to-do stavku za dodati. I onda smo se da će postići cijenu JavaScript da todo iz tog tekstualnog okvira. Mi pohranjeni kako unutar JavaScript niz, što je u osnovi kao Naša programska zastupljenost da to-do liste, i onda smo ga isprintati. Ovo je todos.js. To je vrsta cool, ali kako možemo uzeti ovo dalje? Pa, kao što možete vidjeti, to nije kao što je kompletan popis obveza. Na primjer, ja ne mogu označiti bilo koji od tih predmeta su nepotpuni, kao i ako sam htjela reprioritize stavki ili brisati stavke. To je u redu, ali možemo uzeti još. Neću puno govoriti o dodavanju dodatnih značajki, ali smo mogli uzeti i dalje. Pričajmo o dodavanju još jednu značajku za to-do lista, koja će biti u mogućnosti da provjerite pojedinca to-do stavke a to su prekriženi, tako da u osnovi govori sam to učinio. Pogledajmo neke koda koji bi mogao ostvariti taj. Obavijest ono što sam učinio, na vrhu je sam dodao Nova globalna niz naziva kompletna. Ja sam u osnovi koristeći ovaj za pohranu li ti predmeti na to-do liste potpuni ili ne. To je jedan način da to učinite. Ako sam pogled na provedbi ove, prikaza, Uglavnom, ako sam unijeti todo i ja pritisnite ovu sklopku ona prelazi van, tako da je svaki predmet na ovom popisu ima ili potpuni ili nepotpune stanje, a ja koristim još jedan niz predstavljati to. Uglavnom za svaki popisu obveza u tom polju todos postoji stavka u potpunoj niz koji u osnovi ukazuje bilo da je potpuna ili ne. Morao sam napraviti prilično minimalne promjene na ovoj koda, pa evo naša addTodo funkciju. Uočite da ovdje sam ga gura na polju, a onda sam gurao 0 do potpunog tom polju, osnovi paralelno s tim novim TODO pritiskom da kaže Ja sam dodao ovu stavku, a to je povezano s tom vrijednosti, što znači da je nepotpuna. A onda sam se prekrajanjem to-do listu. Sada, primijetit sam dodao ovu drawTodoList funkciju. To traje puno koda smo imali prije, osnovi briše iz okvira, a zatim skreće novi popis obveza. Ali primijetite da je unutar ove for petlje radimo malo više sada. Mi smo u osnovi Provjeravamo je li predmet odgovara na popisu obveza-tog ovdje je završena, a mi smo ponašaju različito u ove dvije okolnosti. Ako je kompletan, mi dodajemo ovu del oznaku, koja je u osnovi način na koji možete dobiti taj štrajk kroz snagu prijelaz iz popisa obveza, ako je to kompletan, a ako to nije, mi ne uvrstivši ga. I tako ta vrsta vodi brigu o tome, i to je jedan od načina da to postigne. A onda primijetiti kada korisnik klikne na jedan od tih smo prebacivali završetka status njega. Kada korisnik klikne, mi ćemo preokrenuti bilo da je završena ili ne, , a onda ćemo ga ponovno iscrtavanje. Ova vrsta radova. Imamo tim funkcijama koje obavljaju svoje zadatke, i to je u redu. Ima li nešto što bismo mogli učiniti bolje o tome, je li? Obavijest imamo ove dvije globalne polja. Ako je to bilo C, a imali smo dva polja koja vrsta zastupljene Podaci koje je svojevrsni odnose na neki način što bi mi koristimo u C kombinirati ove dvije polja u nešto što oblaže oba komada informacija? Svatko želi napraviti prijedlog? [Studentski nečujno odgovora] Točno, tako da smo mogli koristiti nekakav struct, a ako mislite natrag, kažu, pset 3, sjećam da smo imali rječnika, a onda smo imali li riječ bio u rječniku, a sve informacije koje je sastavila unutar neke strukture podataka. Jedna stvar koju mogu učiniti s ovim kodom kako bi se izbjeglo da ta dva različita polja za slične komada informacija je da ih mogu kombinirati u JavaScript objekta. Uzmimo pogled na to. Obavijest Ja imam samo jedan niz na vrhu sada i ono što sam učinio je i ovo samo JavaScript Sintaksa vrsta stvaranja doslovni verziju objekta, i primijetiti postoje dvije osobine, tako da imamo todo, i to je zadržao zajedno sa bilo da je potpuna ili nepotpuna. To je vrlo sličan broj. Mi smo pomoću JavaScripta objekte. Ova vrsta poboljšava stvari. Kao i sada, svih ovih područja povezanih informacija drže zajedno. Kad idemo na isprintati, možemo pristupiti polja. Obavijest o tome kako radimo Todos [i]. Potpuni umjesto da provjere kompletnu lepezu odvojeno, i primjetiti kada želimo dobiti za napraviti niz smo dobivanje do-do imovine tog popisu obveza, tako da je ova vrsta ima smisla, jer svaki predmet ima ove prirođena svojstva o tome. Ima todo, a to je da li je potpun ili ne. Ne previše promjena ima funkcionalno, samo dodao još malo na kodu. To je poboljšanje u odnosu na nekim bojištima, zar ne? Mislim, mi uzete iz dizajnu malo. Sada imamo objekte kako bi ukratko opisali osnovi tih podataka. Ima li što bismo mogli napraviti od ovog u smislu JavaScript? Sviđa mi se obavijest da je ovaj broj ovdje za dobivanje unutarnji HTML div je malo, valjda, dugo. Postoji document.getElementById ("todos"). InnerHTML. Jedna stvar koju smo mogli učiniti da bi se to kod izgleda malo ugodnija pa ne bi trebala zadržati pomicanje lijevo i desno, naprijed i natrag, je sam mogao koristiti knjižnicu poput jQuery. Pogledajmo seminar 2, i to je isti broj, ali to je učinjeno s jQuery. Vi svibanj ne biti previše upoznat s jQuery, ali samo znam da je jQuery je vrsta knjižnica za JavaScript , što ga čini lakšim za napraviti stvari kao što su pristup pojedinim elementima DOM. Ovdje umjesto da se kaže document.getElementById ("todos"). InnerHTML Ja mogu koristiti puno čišći put u jQuery, koji je samo za korištenje selektora. Kao što možete vidjeti, ovaj broj je netko malo čišći, vrlo sličan funkcionalno, ali to je ideja. Vidjeli smo par stvari dosad, tako da smo započeli sa samo sirovom JavaScript provedbu. Dodali smo nove značajke i pokazali kako možemo poboljšati s samo ono što imamo u JavaScriptu. Da li netko vidio bilo kakvih poteškoća s ovog dizajna? Naime, pretpostavljam, ili ne nužno poteškoće, ali recimo nismo radili popis obveza projekt, a sutra smo odlučili željeli smo napraviti popis namirnica ili projekt shopping liste. Mnoge od tih značajki su vrlo slični. Puno stvari koje žele izaći iz JavaScripta su vrlo česte, i to naglašava potrebu za nekom vrstom način što se to lakše učiniti. Morao sam izgraditi sve ove HTML pristupa, sve ovo DOM pristup, kao da ću se predstavljaju za napraviti popis s ovim modelom. I primjetiti da sam odgovoran kao JavaScript programer za čuvanje HTML i JavaScript da imam u sync. Ništa se automatski napravljen da JavaScript zastupljenost ili do-do lista se istisnuo u HTML. Ništa provoditi da, osim za mene. Morao sam napisati ždrijeb za napraviti popis funkcija. A to ne može biti, mislim, to je razumno to učiniti, ali to može biti zamorno ponekad. Ako imate veći projekt, koji bi mogli biti teško. Okviri, jedna od svrha okvirima je pojednostaviti taj proces i vrste čimbenika iz to common-Mislim da se može reći-dizajn obrazaca da ljudi obično imaju nekakav način predstavljanja podataka, bilo da je popis prijatelja, bilo da je karta o ili nešto ili to-do list. Neki ljudi imaju općenito način prikazivanja informacija, i oni obično trebaju držati da informacije vrsta u sync između onoga što korisnik vidi u nekom pogledu, govoreći u terminima poput kontroler modela more koje smo vidjeli na predavanju, a zatim model, koji u ovom slučaju je to JavaScript polje. Okviri nam dati način da se riješi taj problem. Sada ćemo pogledati na provedbi to-do lista u okviru zove angularjs. To je to. Obavijest se uklapa na slajdu. Nemam za pomicanje lijevo i desno. To vjerojatno nije velik razlog za preporučiti koristeći okvir, Obavijest ali sam ikad pristup pojedinačne elemente HTML-a ovdje? Jesam li ja ikada idući u DOM? Vidite li document.getElementById ili nešto slično? No, kako je otišao. Kutna nam pomaže zadržati DOM i JavaScript naše reprezentacije nečega vrsta u sync, pa ako to nije u js datoteke, ako ne postoji način programsko dobivanje na sve to HTML sadržaja iz JavaScripta kako smo imajući to u sync? Ako to nije u. Js, to mora biti u HTML-u, zar ne? Ovo je nova verzija HTML datoteke, i primjetiti Dodali smo puno ovdje. Obavijest postoji ovi novi atributi koje kažu ng-klik i ng-ponoviti. Kutnog je pristup rješavanju ovog problema poteškoće u dizajnu je u osnovi bi HTML mnogo snažnije. Kutna je način omogućujući vam napraviti HTML nešto izraženiji. Na primjer, ja mogu reći da ću vezati ili vezati ovaj tekstualni okvir u varijablu u mom Kutna JavaScript kod. Ovaj ng-Model ne samo to. To u osnovi kaže da je stavka unutar tog tekstualnog okvira, Samo ih povezujemo s promjenjivom new_todo_description u JavaScript kodu. To je vrlo moćan, jer ja ne moram ići na izričito DOM dobiti tu informaciju. Ne moram reći document.getElementById. Nemam koristiti jQueries poput DOM pristup. Mogu ga povezati s varijablom, a onda kad sam to promijeniti varijablu roku JavaScript je zadržao u sync sa HTML, tako da pojednostavljuje proces da se ide naprijed i natrag između dva. Ima li to smisla? I primjetiti da nema pristup HTML koda. Upravo smo napravili HTML moćniji, a sada, na primjer, možemo raditi stvari kao što je ovaj, kao kad kliknete na to, nazovite ovu funkciju u okviru todos.js, i mi mogli učiniti i prije, ali postoje i druge stvari, kao što je ovaj ng-modela, i primijetiti ovaj ng-ponoviti. Što misliš da to znači? Evo našeg neuređen popis od prije. Imamo UL oznaka, ali ja nikad renderiranje taj popis unutar JavaScript kôd? Nisam nikad izrijekom renderiranje taj popis. Kako ovo radi? Pa, smjer Kutna ostvaruje to je to zove repetitora. Uglavnom ovo kaže da želim ispisati HTML za svaki TODO unutrašnjost moje todos polja. Unutar todos.jr postoji niz todos upravo ovdje, a to će reći kutnog proći kroz taj niz, a za svaki element vidiš Želim vam da ispišete HTML. To je vrsta strašan, jer ja samo mogu to učiniti bez pisati za petlju, koji za to-do liste koja je bila samo 30 linija koda Ne mogu biti najkorisnije stvar, ali ako imate veliki projekt, to bi moglo doći vrlo povoljno. To je jedno rješenje za ovaj problem, izradu HTML moćniji, a to nam omogućuje da JavaScript i HTML u sync. Postoje i drugi mogući načini da se riješi ovaj problem, a ne svaki okvir čini. Nije svaki okvir djeluje u tom pravcu. Neki okviri imaju različite pristupe, a vi svibanj naći da ćete uživati ​​kodiranje u okviru jedne nad drugima. Pogledajmo još jedan. To je to-do lista kodirano se u okviru zove kičma. Ja ću proći kroz to brzo. Ja ću početi s HTML-a prije nego što idemo tamo. Jedan drugi. Počevši s HTML, kao što ste primijetili, naša HTML je vrlo sličan na ono što je bilo prije, tako da ne previše novo na tom planu. Ali naša js je malo drugačija. Okosnicu vrsta ima tu ideju, ili gradi na ideji da je puno toga što mi radimo s, recimo, naši JavaScript projekti je razmišljati o modelima i zbirki tih modela. To može biti, primjerice, slika i zbirki fotografija, ili ideja prijatelja i zbirkama prijatelja. I često kada smo programiranja JavaScript aplikacija ćemo vrsta predstavljaju ideju da zbirku prijatelja Nekako u JavaScriptu, a kičma nam daje ovaj sloj Na vrhu Javascript je postojećih polja i objekata učiniti više moćne stvari s tim lakše. Ovdje sam definirao to-do modela, a vi ne morate brinuti previše o sintaksi, ne primijetiti da ono što je jedna od karakteristika ovog? Ona ima zadanu polje. Okosnicu mi omogućuje da odredite je već off šišmiša svaka nova obveza da sam stvorila će imati ove postavke. Sada mogu prilagoditi tome, ali se moći odrediti zadane je lijepo, a to je vrsta povoljno, jer to nije nešto što je kao svojstvena JavaScript, a sada ne morate izričito kažu da su todos nepotpuni. Ja mogu reći pravo isključiti šišmiš da su todos će biti označena kao nepotpuna. Obavijest što je onda ovo? Sada imam za napraviti popis, a to je skup. Obavijest polje povezan s tim kaže Model todo. Ovo je moj način reći da je okosnica Ja ću biti razmišljanje o naplati tih pojedinačnih todos. To je u osnovi model struktura za moj program. Ovdje imam ideju o prikupljanju, i zapravo stavke sadržane u toj zbirci sve će biti ove todos, a to je vrlo prirodno u tom smislu jer imam Todos, a ja ih imam u kolekciji. Pogledajmo malo više od toga. Ovdje je kičma pogled. Druga stvar koja kaže da je kičma puno modela koji razmišljate o ili čak zbirke će morati imati neki način se prikazuje. Moramo donijeti da to-do lista, a ne bi bilo lijepo kad bismo mogli osigurati za svaki model podružnice ili uz svaki model ovaj pogled koji nam omogućava da mislim spojiti dva zajedno? Dok je prije nego što smo morali koristiti za petlje da bi prolazio kroz svaki todo u našem popisu, a zatim ga isprintati ovdje mi u osnovi može ga povezati s ovim modelom. To je za napraviti pogled. To je povezana s popisu obveza smo pronašli ranije. Sada svaki todo je pokazivaču se može prikazati ili renderable po ovome prikazu obveza. Obavijest neka polja. Što misliš da je ovo tagName je, tagName: Li? Sjetite od prije kad smo htjeli donijeti todo ćemo morati izrijekom upariti s ovim našim Todos Li oznaku. Sada tvrdimo da je to todo gdje će živjeti će biti unutar jednog Li oznaku. I sad mi smo također udruživanje događaje s našim todos. Svaki todo ima tu jedan događaj. Ako kliknete prilično preklopni gumb, to je ono što ja govorim ovdje, zatim osnovi obilježiti todo kao suprotnost od onoga što je bilo prije a zatim ponovno pružiti aplikaciju. To je vrsta slična koda prije. Sjećaš li se kada smo ga označili kao bilo suprotno ili- i onda smo ga ponovno donio. Ali sada primjetiti ovaj događaj koristi da se nešto što je u HTML-u. On je sjedio tamo. Gumb imao na klik. Kad kliknete na gumb, ona vrsta stvari ne bi postavili da todo da je nepotpun. Ovdje smo povezivali taj događaj klikom na taj sklopku i unazad da li je ili isključiti s tog gledišta. Ovo je lijep način postavljanja ovog događaja, tako da je vrlo čvrsto vezana tom stajalištu, i tako primjetiti ovo jedan više. Imam taj način uzvratiti, a mi ne moramo proći kroz detalje. To je vrsta slično onome što smo imali prije, ali primijetiti nisam petlje kroz sve. Ja nisam taj ispisuje ul. oznaku koja je vrsta rekavši da ću ispisati sve elemente. Ja sam pod uvjetom da je funkcionalnost za pružanje ovaj jedan to-do stavke. To je vrlo moćan, jer koncept osnovi naš popis obveza sastoji se od svih tih todos, a ako mi u osnovi može odrediti način da se donese jedan od onih todos onda možemo imamo snažan oslonac po sebi donijeti sve todos pozivom Render metoda na pojedinim todos. To je koncept koji je korisno ovdje. Sada dobro pitanje koje treba postaviti je kako je ovaj program se staviti zajedno? Budući da imamo mogućnost da donese jedan todo, ali kako smo dobili ideju više todos? Uzmimo pogled na to. Ovo je posljednji dio. Obavijest imamo popis obveza pogled ovdje, i primjetiti da je i pogled. I ići preko nekoliko stvari, to Initialize metoda će se zvati kad smo prvi put stvorili tu za-napraviti popis. Kao što možete vidjeti, to je kao stvaranje popisa obveza i povezivanje s tog gledišta. A onda sam dodao funkcija ovdje, pa u osnovi kada dodati stavku- ovo je slično načinu na addItem smo vidjeli prije- Ja ću stvoriti novi popis obveza objekt, i primjetiti ja zapravo zovem ova nova metoda todo, pa to daje Backbone, i ja mogu proći u svojim svojstvima ovdje. I sada svaki todo koji stvaraju sam koristeći ovaj će dobiti taj funkcionalnosti koje smo vidjeli prije. Obavijest sam čistini tekstualni okvir prije-mali mali detalj- a zatim sam dodao ovu kolekciju. To je gotovo čini čudno, jer prije nego što smo jednostavno morali učiniti da todos.push, a onda smo učinili, a to može činiti kompliciraniji za ovaj projekt, a vi svibanj naći da Backbone ili čak kutnog ili bilo koji drugi okvir ne odgovaraju vašem projekt, ali mislim da je važno razmišljati o što to znači na većem mjerilu za veće projekte, jer ako smo imali veći projekt u kojem smo bili predstavljaju Neki stvarno složen skup, nešto dublje nego samo to-do liste, recimo popis prijatelja ili nešto slično, to može doći u ruci jer smo mogli organizirati naš kod u jako zgodan način, na način koji bi ga lakše za nekog drugog koji je htio pokupiti projekt za izgradnju na. Možete vidjeti da to daje puno strukture. I onda zovem uzvratiti na ovom addItem. Render, kao što možete vidjeti, a vi ne morate shvatiti ovu punu sintaksu, ali u osnovi za svaki model će to nazvati pojedinačni uzvratiti metodu. To je vrsta, gdje to dolazi iz. Ajmo navesti kako čine pojedinca Todos a onda ćemo ih ljepila zajedno kao cjelina. No, to pruža način apstrakcije, jer sam mogao promijeniti način na koji sam odlučuje da donese pojedine Todos i ne bih morati promijeniti bilo koju od ovog koda. To je vrsta cool. Da li itko ima bilo kakvih pitanja u vezi JavaScript okvirima? [Studentski nečujno Pitanje] Oh, da, to je veliko pitanje. Pitanje je bilo kako sam uključiti okvire? Većina JavaScript okviri su u osnovi samo JS datoteke da možete uključiti na vrhu vašeg koda. Obavijest u glavu dijelu mog HTML Imam sve te skripte oznake, , a konačni scenarij tag je kod koji smo napisali. A onda su 3 okvirni kodovi su jednostavno i skripta oznake. Ja sam ih pa tako i od onoga što se zove CDN, što mi omogućuje da ga dobili od nekoga drugoga u ovom trenutku ali svaki okvir ima ova-možete prilično mnogo pronaći sadržaj za određenu JavaScript knjižnica je dostupna na nekim CDN ili nešto slično, a zatim možete uključiti ove oznake skripte. Ima li to smisla? Cool. To su dva različita pristupa. Oni nisu jedini pristupi rješavanju ovog problema. Postoji mnogo različitih stvari koje netko mogao napraviti, a tu su i mnogi okviri vani. Kutni i kičma ne reći cijelu priču. Sretno s vašim konačnim projekte, a puno ti hvala. [CS50.TV]