[Powered by Google Translate] [Seminar] [Javascript Ogrodja: zakaj in kako?] [Kevin Schmid] [Harvard University] [To je CS50.] [CS50.TV] Pozdravljeni vsi. Dobrodošli na okvirov seminarja JavaScript. Moje ime je Kevin, danes bom govoril o okvirov JavaScript, in cilj tega seminarja je, da ne boste dobili, recimo, mojster poseben okvir po sebi ampak, da vam širok uvod v nekaj okvirov in pokazati, zakaj bi si kdaj želeli uporabiti okvir. Preden naredim to, bom zagotovila malo ozadja v JavaScript, in potem ga bomo od tam. Bomo začeli z izvajanjem seznam opravkov. Tukaj je naš seznam opravil za danes. To je smešno. Moramo izvajati seznam opravil v JavaScriptu. To je tisto, kar se dogaja, da izgleda kot, da je naš prvi cilj. Ne bomo uporabljati okvir za to. Bomo kode JavaScript in dobili seznam opravil delo. Potem se bomo za izboljšanje načrtovanja, brez uporabe okvira. Bomo razpravljali o različnih stvari, ki jih lahko delamo le samo z JavaScript da bi naše opravil malo bolj dobro oblikovana seznam. Potem bomo vrgli v nekaterih jQuery, in potem bomo pogled na isti seznam opravil, pravkar poteka v različnih okvirih, in bomo razpravljali  prednosti in slabosti na poti. Začnimo izvajanje, da seznam opravil. Recimo, da smo glede na to HTML. Jaz bom, da bo to malo manjši. Kot lahko vidite, imam malo glavo, ki pravi Todo in malo okno, kjer lahko vnesete opis za Todo in potem nov gumb element, tako da poskusimo vnesti nov todo na tem seznamu. Daj JavaScript okvire seminar, in sem se udaril nov element. Sem dobil to opozorilo JavaScript, ki pravi, da izvajanje me. Imava za njeno izvajanje. Poglejmo kodo za to, tako HTML in JavaScript. Tukaj je naš HTML. Kot lahko vidite tukaj, tukaj je naš mali Todos glava. Da je bila ta drzna stvar na vrhu, in potem imamo vnosno polje z ogrado, in potem je določena lastnost tega gumba, ki zahteva te funkcije addTodo. Ali kdo želi ugibati, kaj je na klik, ki pomeni? [Student neslišen odziv] Dobro je na klik, je nekaj podobnega dogodka, kot klikom na miško je samo dogodek, in kaj delamo se bomo vezanje dogodek klikom na ta gumb za izvršitev te funkcije. AddTodo je ta dogodek trener za klikom na ta gumb. Kot lahko vidite, ko kliknete gumb za nov element Dogodek na klik dobi odpustili, in ta funkcija gets klical. Oglejmo si funkcijo. Kot lahko vidite, tu je moja koda Javascript doslej. Kaj imam na vrhu je globalna struktura podatkov za moj seznam opravil. Izgleda matrike. To je samo prazna polja. In potem imam addTodo funkcijo, da smo videli že prej, in samo vrstico kode tam je to opozorilo. Opozori izvajati me, in potem imam 2 naloge pri roki. Moram dodati todo tej globalni strukturi podatkov, in potem hočem potegnili seznam opravkov. Nič mi samo še, ampak Javascript ste morda seznanjeni s tem, tako da sem šel počasi in pregledati temelje JavaScript v tej smeri. Dajmo to strel. Recimo, da uporabnik vnese nekaj v tem polju. Pravkar sem tipkal nekaj tukaj, besedila. Kako razvrstim dostopa, da besedilo z JavaScript? Ne pozabite, da je JavaScript, ena od njenih temeljnih značilnosti je, da nam daje Ta programski dostop do DOM. To nam omogoča dostop do elemente in njihove lastnosti tega dejanskega HTML. Tako bomo to storili s Bare Bones JavaScript je lahko dejansko uporabite funkcijo v JavaScriptu imenovano getElementByID. Želim, da shranite besedilo, ki je tam vnesli v neki spremenljivki, tako bom rekel novo spremenljivko z imenom new_todo, in bom, da bi dobili ta element. To je funkcija,. GetElementByID. In zdaj sem že element z ID, tako da moram ID tega polja z besedilom, tako da sem mu dala ID new_todo_description. Tako bom dobil element. To je moj argument, da to funkcijo, da določi, kateri ID dobiti. Tako, da je element HTML, in ima lastnosti. Videli ste jih. Oni so atributi. Atribut besedilnega elementa, ki shranjuje vhodne uporabnika, se imenuje vrednost. Rešil sem vrednost tega polja z besedilom zdaj v to spremenljivko imenovano new_todo. Zdaj imam programski dostop do te spremenljivke, ki je nekako kul ker zdaj, kaj lahko storim, je, da sem lahko dodate na svoj seznam opravil. Tako bomo to naredili v JavaScript-in ne skrbite, če niste seznanjeni s tem, ampak le, da bo skozi to je todos.push ker to je ime moje globalne podatkovne strukture tu gor, in bom za potiskanje new_todo. To je super, ker sedaj sem ga dodal k moji JavaScript predstavitev, da seznam opravil. Toda zdaj, kako ga dobim nazaj v HTML? Moram najti način, da nekako ga potisnite nazaj. Z drugimi besedami, nekako sem morala pripraviti to. Kaj bomo storiti je, da gremo, da pripravi seznama opravil. Moram posodobiti druge HTML na tej strani, in kot vidite, sem zapustil to majhno posodo tukaj Ta delilnik strani, katere številka je todos, in bom dal seznama opravil tam. Najprej bom to jasno, ker pravijo, da je bil star seznam opravkov tam. Dobivam ta element po ID enkrat, in sem dostop do notranjega HTML tega elementa, in bom jasno, da. Če bi se to kodo, kot je, bi videli prazen nič tam, in zdaj želim, da začnete česar mojega novega seznama opravil. Jaz sem v bistvu dogaja, da bi izbrisala svoj seznama opravil. Sedaj notranja HTML znotraj tega todos div je popolnoma jasno, in zdaj moram začeti dodal moj seznam. Prva stvar, ki jo želite dodati nazaj je neurejen seznam tag, kar v bistvu pomeni, da je to začetek neurejen seznam. Zdaj za vsak element v mojem todos paleto želim natisniti znotraj te HTML. Rad bi ga dodajte na dnu tega seznama. Tako kot v C-ju, sem lahko uporabite za zanke, in bom začel na začetku mojega seznama pri elementu 0 in bom šel vse do dolžine seznama. Mi lahko dejansko dobili dolžino array v JavaScriptu z dolžino premoženja. V bistvu bom naredil nekaj zelo podobnega v notranjosti tukaj natisniti ta element. Sem spet lahko dostopate do todos div, notranja HTML lastnost, da, in bom dodati to novo postavko seznama, in to se dogaja, da je obkrožen z to li tag, in bom za združevanje z operaterjem +, in da je i-ti element mojega todos matrike, in potem bom zaprl to oznako. Zdaj za vsak element bomo dodali nov vnos v seznamu. In potem vse res morate storiti, je zapreti to oznako. Moram zapreti, da neurejen seznam tag. Ali boste dobili občutek, kako, da deluje? To odpre celoten seznam. Ta dodaja posamezne elemente iz seznama todos na seznam in potem zapre celoten seznam, in to je moj addTodo funkcijo. Sem v bistvu najprej dobili todo iz polja z besedilom. Dodam, da na Todos niz, potem pa sem ponovno postale seznama opravil. Sedaj lahko dodate elemente na mojem seznamu. To je nekako razburljivo, saj je v le nekaj vrstic kode smo v bistvu naredili seznama opravil, kjer lahko dodate elemente. Super. To je nekakšen uvod v osnovne JavaScript. Ne skrbite preveč o skladnji za zdaj, ampak mislim o tem konceptualno. Imeli smo nekaj HTML. Imeli smo besedilno polje na strani, ki v bistvu dovoli uporabnikom, za vnos, opravila postavka dodati. In potem smo JavaScript puščati, da todo iz te polje z besedilom. Shranjeni smo to, kar je znotraj polja JavaScript bistvu kot Naša programska zastopanje, da seznam opravil, in potem smo ga natisne. To je todos.js. To je nekako kul, ampak kako bomo to še trajalo? Torej, kot lahko vidite, to ni tako popoln seznam opravkov. Na primer, ne morem označiti katere od teh stvari so nepopolni, všeč, če bi želel reprioritize predmete ali brisanje elementov. To je v redu, vendar pa lahko traja še naprej. Ne bom govoril preveč o dodajanju dodatnih funkcij, lahko pa smo se, da še naprej. Spregovorimo o dodajanju še eno funkcijo, da ta seznam opravil, ki se dogaja, da se ni mogoče preveriti posameznika opravil element in se je prečrtati, tako da v bistvu rekel da sem to storil. Oglejmo si nekaj kode, da bi lahko izvedla to. Obvestilo, kaj sem naredil na vrhu je sem dodal Nova globalna matrika se imenuje popolna. Jaz sem v bistvu s tem, da shranite ali predmete na seznam opravil popolni ali ne. To je eden od načinov, da to storijo. Če gledam na izvajanje tega sklepa, prikaz, v bistvu, če vpišem todo in sem pritisnite ta gumb za preklop prečka ven, zato je vsaka točka na seznamu je bodisi popolna ali nepopolno stanje, in sem z drugo vrsto, da predstavlja to. V bistvu za vsako Todo v tej todos matriki tam je postavka v popolni niz, ki v bistvu kaže ali je popolna ali ne. Sem imel, da bi precej malenkostne spremembe tega kodeksa, tako da tukaj je naša addTodo funkcija. Obvestilo, da tu sem ga potiska na paleto, in potem sem pritiskom na 0, da to popolno paleto, v bistvu vzporedno s tem novim nedokončano pritiskom reči Jaz sem dodal to postavko, in to je povezano s to vrednostjo, kar pomeni, da je nepopolna. In potem sem redrawing seznam opravkov. Sedaj opazil sem dodal to drawTodoList funkcijo. To traja veliko kode smo imeli prej, v bistvu vzame ven polje in nato sestavi nov seznam opravil. Ampak obvestilo, da je v notranjosti ta zanka delamo malo več zdaj. Mi smo v bistvu preverjanje, ali element, ki ustreza i Todo tukaj je popolna, in smo obnaša drugače v teh 2 okoliščinah. Če je končan, bomo dodali ta del oznako, ki je v bistvu način lahko dobite to stavko, s pomočjo učinka prečrtajo s seznama opravil, če je popolna, in če je ne, ne bova tudi. In tako nekako skrbi, da in to je eden od načinov za doseganje tega. In potem opazili, ko uporabnik klikne eno od teh smo preklopite stanje dokončanja tega. Ko uporabnik klikne, se bomo obrnili, ali je bila ta zaključena ali ne, in potem ga bomo izvlečete. Ta vrsta del. Imamo te funkcije, ki opravljajo svoje naloge, in to je v redu. Je še kaj, kar lahko storimo bolje o tem, čeprav? Opazili smo te 2 globalnih nize. Če je to C, in smo imeli 2 nize, da je vrsta zastopana Podatki, ki so nekako povezani na nek način Kaj bi lahko uporabite v C združiti ti 2 polja v nekaj, kar povzema obe informaciji? Kdorkoli želite, da bi predlog? [Student neslišen odziv] Točno, tako da bi lahko uporabili nekakšen struct, in če pomislim nazaj, recimo, pset 3, ne pozabite, smo imeli zbirko, nato pa smo imeli, ali je beseda je bil v slovarju, in vse te informacije je dal skupaj znotraj nekaterih podatkov strukture. Ena stvar, ki sem lahko narediš s tem kodeksom, da se jim teh 2 različne nize za podobne dele informacij, da jih lahko združite v objektu JavaScript. Oglejmo pogled na to. Opazil sem le eno vrsto na vrhu zdaj in kaj sem naredil, je, in to je šele JavaScript sintaksa za nekakšen ustvarjanje dobesedni prevod predmeta, in opazil, obstajajo 2 lastnosti, tako da imamo todo, in to je ohraniti, skupaj s tem, ali je popolna ali nepopolna. To je zelo podoben kode. Mi smo z uporabo predmetov JavaScript. Ta vrsta izboljšuje stvari. Tako kot sedaj, so vsi ti polja informacij, povezanih z obdržati skupaj. Ko gremo, da ga natisnete, lahko dostopate do polja. Opazili, kako delamo todos [i]. Popolna Namesto preverjanje popolno paleto ločeno in opazil, kadar želimo, da bi dobili, opravila niz smo dobili, opravila nepremičnine te Todo, tako da to nekako smiselno, saj Vsak element ima te bistvene lastnosti o njej. Ima todo in ima ali je popolna ali ne. Ne preveč sprememb ni funkcionalno, samo dodal nekaj več kode. To je napredek na nekaterih področjih, kajne? Mislim, vključeno ven oblikovanje bit. Zdaj imamo predmete v bistvu zajame te podatke. Je še kaj, kar lahko storimo od tod v smislu JavaScript? Všeč mi je obvestilo, da je ta oznaka tukaj za pridobivanje notranjo HTML div je malo, mislim, dolgo. Tam je document.getElementById ("todos"). InnerHTML. Ena stvar, kar lahko storimo, da bo ta številka poglej malo prijaznejši da mi ne bi bilo treba ohraniti pomikanjem levo in desno, naprej in nazaj, je, da sem lahko uporabite knjižnico kot jQuery. Poglejmo Seminar 2, in to je isto kodo, vendar je narejena s jQuery. Morda ne boste preveč seznanjeni s jQuery, ampak samo vem, da je jQuery neke vrste knjižnico za JavaScript da je lažje narediti stvari, kot so dostop do posameznih elementov DOM. Tukaj namesto da bi rekel document.getElementById ("todos"). InnerHTML Lahko uporabite veliko čistejši način jQuery, , ki je samo za uporabo selektorjev. Kot lahko vidite, ta številka pa dobili malo čistejši, zelo podobno funkcionalno, ampak to je ideja. Videli smo nekaj stvari tako daleč, Tako smo začeli s samo surovo izvajanjem JavaScript. Dodali smo nove funkcije in pokazala, kako bomo lahko izboljšali z samo tisto, kar imamo v JavaScript. Ali kdo vidi težave s to obliko? Namreč, mislim, ali ni nujno, da težave, ampak recimo, nismo bili delaš projekt za seznam opravil, jutri smo se odločili, smo želeli, da bi nakupovalni seznam ali projekt nakupovalnega seznama. Veliko teh lastnosti so zelo podobne. Veliko stvari, ki jih želijo priti ven iz JavaScriptu so zelo pogoste, in to poudarja potrebo po nekakšni način bi to lažje narediti. Sem moral zgraditi vse te HTML dostop, vse to dostop DOM, kot bom predstavljajo seznam opravil s tem modelom. In opazil sem odgovoren, kot razvijalec JavaScript za vodenje HTML in JavaScript, ki ga imam v sinhronizacijo. Nič ne naredi avtomatsko, da je zastopanje Javascript ali to-do seznam dobili izrinili v HTML. Nič ne uveljavlja, da razen mene. Morala sem napisati žrebom opravil funkcijo seznama. In da ne sme biti, mislim, da je smiselno, da se ne da, vendar pa je lahko včasih dolgočasno. Če imate večji projekt, da bi bilo težko. Okviri, eden od namenov okvirih je poenostaviti ta proces in stvari faktorja iz ti common-Mislim, da bi lahko rekli, načrtovalski vzorci da ljudje na splošno imajo nekakšen način predstavljanja podatkov, ali da je seznam prijateljev, ali da je zemljevid podatki ali kaj podobnega, ali seznam opravkov. Nekateri imajo običajno način predstavlja podatke, in so na splošno treba hraniti, da so informacije nekako v sinhronizacijo med tem, kar uporabnik vidi v nekakšni namenom, gledano v smislu, kot modela pogled krmilnik, ki ga videli v predavanju nato pa vzorec, ki je v tem primeru je to polje Javascript. Okviri nam način za rešitev tega problema. Zdaj pa si oglejte na izvajanje tega seznam opravil v okviru ti angularjs. To je to. Obvestilo se prilega na diapozitivu. Nimam se pomaknite na levo in desno. To verjetno ni dober razlog, da priporočam uporabo okvira, ampak obvestilo sem kdaj dostop do posameznih elementov HTML tukaj? Si bom v DOM? Ali vidite kakšno document.getElementById ali kaj podobnega? Ne, to je več. Kotna nam pomaga ohraniti DOM in našo zastopanost JavaScript nečesa nekako v sinhronizacijo, tako da, če to ni v spisu js, če ni način za načrtno pridobivanje vse te vsebine HTML Iz JavaScript kako smo vodenje tega v sinhronizaciji? Če to ni v spisu. Js, je dobil biti v HTML, kajne? To je nova različica datoteke HTML, in opazili smo dodali veliko tukaj. Obvestilo tam te nove lastnosti, ki pravijo ng klik in ng-repeat. Pristop kotnih k reševanju tega problema s težavami pri načrtovanju je v bistvu narediti HTML veliko močnejši. Kotna je način, ki vam bo omogočila HTML nekoliko bolj izrazite. Na primer, lahko rečem, da bom kravato ali veže to polje z besedilom spremenljivki v mojem Kotna kode JavaScript. Ta ng model ne samo to. , Ki v bistvu pravi, da je element znotraj to polje z besedilom, samo povezati, da s spremenljivo new_todo_description znotraj kode JavaScript. To je zelo močna, ker nimam izrecno iti DOM bi dobili te informacije. Nimam za povedati document.getElementById. Nimam uporabljati jQueries kot DOM dostopa. Lahko jo povezal s spremenljivko, nato pa, ko sem spremeniti, da spremenljivka v JavaScriptu je to vodi v sinhronizacijo z HTML, tako da poenostavlja postopek bi morali iti naprej in nazaj med dvema. Ali je to smiselno? In opazil ni HTML kodo za dostop. Pravkar smo HTML bolj močna, in zdaj, na primer, lahko naredimo stvari, kot je ta, všeč, ko boste kliknili na to, pokličite to funkcijo v okviru todos.js, in bi lahko storili prej, vendar obstajajo tudi druge stvari, kot je ta ng modela, in opazil to NG-ponovitev. Kaj misliš, da to počne? Tukaj je naš neurejen seznam od prej. Imamo ul oznake, vendar sem kdaj česar ta seznam notranjost JavaScript kodo? Ne bom nikoli izrecno zaradi česar ta seznam. Kako to deluje? No, pot kotno dosega to je to se imenuje repetitor. V bistvu je to pravi, da želim natisniti HTML za vsako nedokončano notranjosti mojega todos matrike. Znotraj todos.jr je todos matrika tukaj, in to bo povedal Kotna šel skozi ta polja, in za vsak element vidite Želim si, da natisnete to HTML. To je nekako super, ker sem lahko samo to ne da bi morali pisati v zanko, , ki za to-do seznam, ki je bil le 30 vrstic kode morda ni najbolj koristna stvar, vendar, če imate velik projekt, bi to lahko dobite zelo priročno. To je ena rešitev tega problema, ki HTML močnejši, in ki nam omogoča ohraniti JavaScript in HTML v sinhronizacijo. Obstajajo tudi druge možne načine za rešitev tega problema, in ne vsak okvir počne. Ni vsak okvir deluje v tej smeri. Nekateri okviri imajo različne pristope, in morda boste ugotovili, da ste uživali v kodiranje v enem okviru več kot drugi. Oglejmo si še en. To je to-do seznam kodirani v okviru imenuje hrbtenica. Jaz grem skozi to hitro. Začel bom s HTML, preden gremo tja. Eno sekundo. Začenši s HTML, kot ste opazili, naša HTML je zelo podoben s tem, kar je bilo prej, tako da ne preveč novega na tej fronti. Toda naš js pila je malo drugačna. Hrbtenico vrsta ima to idejo, ali temelji na ideji da je veliko tega, kar počnemo z, recimo, naši projekti JavaScript je razmišljati o modelih in zbirkah teh modelov. To bi lahko, na primer, fotografije in zbirke fotografij, ali ideja prijatelja in zbirk prijateljev. In velikokrat, ko smo programiranju aplikacij JavaScript bomo nekako predstavlja zamisel o zbirko prijateljev nekako v JavaScript in hrbtenica nam daje ta sloj na vrhu JavaScript je obstoječimi nizi in predmetov narediti bolj zmogljive stvari, s tem lažje. Tukaj sem opredelila to-do modela, in vam ni treba skrbeti preveč o skladnji, ampak obvestilo, da tisto, kar je ena izmed lastnosti tega? To je privzeto polje. Hrbtenica mi omogoča, da že določajo off kij vsako novo opravilo, da ustvarim se dogaja, da imajo te privzete. Zdaj lahko prilagodite to, ampak da lahko določite privzete Lepo je, in to je nekako prikladno, ker to ni nekaj, kar je podobno neločljivo povezana JavaScript, zdaj pa nimam izrecno pravijo, da so todos nepopolna. Lahko rečem, pravico off kij, todos se bodo označene kot nepopolne. Obvestilo potem kaj je to? Sedaj imam seznama opravil, in to je zbirka. Obvestilo polje, povezano s tem pravi model, todo. To je moj način povedati, da hrbtenica Bom lahko razmišljal o zbiranju teh posameznih todos. To je v bistvu struktura model za mojega programa. Tukaj imam to idejo zbiranja, in v bistvu predmeti iz te zbirke so vsi bo ta todos, in da je zelo naravno v tem smislu ker imam todos, in jih imam v zbirki. Oglejmo si malo več o tem. Tukaj je pogled hrbtenica. Druga stvar, ki hrbtenica pravi, da Veliko modelov, ki razmišljate o tem, ali celo zbirk se bomo morali na nek način se prikaže. Moramo nuditi, da seznam opravil, in ne bi bilo lepo, če smo lahko za vsak model ali povezati z vsakim modelom ta pogled , ki nam omogoča, da mislim, da povežete dve skupaj? Ker je, preden smo morali uporabiti za zanke, ki bi potekal prek vsak todo na našem seznamu, nato pa ga natisnete tukaj bomo lahko v bistvu ga povezati s tem modelom. To je opravil pregled. To je povezano z nedokončano smo ugotovili že prej. Zdaj je vsaka todo predstavljivega ali renderable s to opravil. Obvestilo nekaterih področjih. Kaj misliš, da je to ime oznake je ime oznake: li? Zapomni si od prej, ko smo želeli, da postane v todo mi bi morali izrecno seznaniti naše todos s tem li oznako. Zdaj smo si rekel, da če je to todo se dogaja, da živi se bo v notranjosti je li oznako. In zdaj smo tudi povezujejo dogodke z našimi todos. Vsak todo ima tale dogodek. Če kliknete precej gumb za preklop, da je tisto, kar sem rekel je, potem v bistvu označite todo kot nasprotje tega, kar je bilo prej in nato ponovno postane uporaba. To je nekako podobno kodo poprej. Se spomniš, ko smo ga označi kot bodisi nasproti ali- potem pa jo ponovno opravljene. Opazil zdaj ta dogodek, ki se uporablja, da je nekaj, kar je v HTML. To je sedel tam. Gumb je imela na klik. Ko boste kliknili na gumb, pa nekako počne stvari, ustanovi, ki se todo nepopolna. Tukaj smo povezani, da je dogodek, da kliknete gumb za preklop in vzvratno ali je to vklopite ali izklopite s tem stališčem. To je lep način za vzpostavitev tega dogodka, tako da je zelo tesno vezani s tem namenom, in tako opazili tole več. Imam ta način upodabljanja, in mi ne bi bilo treba iti skozi podrobnosti. To je nekako podoben temu, kar smo imeli prej, Opazil nisem zanka skozi karkoli. Jaz ne tiska, da ul oznako, ki je nekako rekel bom, da natisnete vse elemente. Jaz zagotavljajo funkcionalnost za opravljanje tole opravil elementa. To je zelo močan koncept, ker v bistvu naš seznam opravil je sestavljen iz vseh teh todos, in če bomo v bistvu lahko določite pot, da postane eden od tistih, todos potem lahko imamo močno hrbtenico per se onemogočijo vse todos s klicem metode ometa na posameznih todos. To je koncept, ki je koristno tukaj. Zdaj je dobro vprašanje vprašati, kako se ta vloga skupaj? Ker imamo možnost, da postane ena todo, ampak kako smo dobili idejo o več todos? Oglejmo pogled na to. To je zadnji del. Opazili smo, opravila ogled seznama tukaj in opazil je tudi pogled. In iti čez nekaj stvari, ta metoda Inicializacija se bo imenovala, ko smo prvič ustvarili ta seznam opravil. Kot lahko vidite, to je kot ustvarjanje seznama opravil in ga povežete s tem stališčem. In potem sem dodal funkcije, tukaj, tako da v bistvu, ko boste dodali element- To je podobno addItem metodo smo videli pred- Grem ustvariti nov todo predmet, in opazil sem dejansko kliče Ta nova metoda todo, tako da je to predvideno s hrbtenico in sem lahko preide v mojih lastnosti tukaj. In zdaj bo vsak todo, da sem ustvarili z to dobil to funkcionalnost, ki smo videli prej. Obvestilo sem počistiti polje z besedilom pred-majhen detajl- in potem sem dodal to zbirko. To je skoraj se zdi čudno, ker prej smo imeli narediti, da todos.push, in potem smo naredili, in to lahko zdi bolj zapletena za ta projekt, in morda boste ugotovili, da je hrbtenica ali celo kotnih ali kateri koli drug okvir ne ustreza vašim posebnim projektom, vendar mislim, da je pomembno, da razmišljajo o kaj to pomeni v večjem obsegu za večje projekte, ker če bi imeli večji projekt, kjer smo se predstavlja nekateri res zapleteno zbiranje, nekaj globljega kot samo to-do seznam, recimo seznam ali kaj podobnega, da prijatelji, bi to lahko prišel prav saj ne moremo organizirati našo kodo v zelo priročen način, na način, da bi bilo lažje za nekoga drugega , ki je želel, da poberem projekta za nadgradnjo. Vidite lahko, da to zagotavlja veliko strukture. In potem kličem postane na tem addItem. Opravijo, kot lahko vidite, in ne boste imeli, da bi razumela to popolno sintakso, ampak v bistvu za vsak model se dogaja, da pokličete posamične metode upodabljanja. To je nekako, če ta prihaja. Reciva, določajo, kako naj postanejo posamezne todos, nato pa jih zlepili v celoti. Toda to določa način odvzema ker sem lahko spremenite način sem odloči, da se posamezne todos, in mi ne bi bilo treba spremeniti katerega od tega kodeksa. To je nekako kul. Ima kdo kakšna vprašanja o okvirih JavaScript? [Student neslišno vprašanje] Oh, seveda, to je veliko vprašanje. Vprašanje je bilo, kako sem tudi okvire? Večina okviri JavaScript so v bistvu samo js datoteke da lahko vključite na vrh kodo. Obvestilo v glavi del mojega HTML imam vse te skriptne oznake, in končno script tag je koda, ki smo jih napisali. In potem so okvirni kode 3 so le tako tags skript. Jaz sem jih tudi od tega, kar se imenuje CDN, , ki mi omogoča, da je od nekoga drugega na tej točki ampak vsak okvir je to, lahko precej našli vsebine za določeno knjižnico JavaScript voljo na nekaterih CDN ali kaj podobnega, in potem si lahko tudi ta scenarij oznake. Ali je to smiselno? Kul. Tisti, ki so 2 različni pristopi. Tisti, ki niso samo pristopi k reševanju tega problema. Obstaja veliko različnih stvari, ki jih kdo bi lahko naredil, in obstaja veliko okviri tam. Oglato in hrbtenica ne povedo vsega. Srečno pri končnih projektov, in najlepša hvala. [CS50.TV]