Last active
December 15, 2015 07:09
-
-
Save vencax/5221684 to your computer and use it in GitHub Desktop.
dil 2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <p> | |
| V minulém díle jsme si vygenerovali kostru klientské aplikace pomocí yeomanu a rozchodily jsme cloud9 IDE. | |
| Dnes upravíme vygenerovanou aplikaci aby dělala co dělá aplikace | |
| z <a href="http://www.zdrojak.cz/serialy/node-js-s-javascriptem-na-serveru/">Jakubova serialu</a>. | |
| Použijeme k tomu co jiného než yeoman. Zároveň přidáme další gruntí úkol pro generování server mocku. | |
| Na konci bychom měli být schopni aplikaci reálně používat na testovacích datech, které nabízí server mock. | |
| </p> | |
| <h3>Přidávání funkcionality</h3> | |
| <p> | |
| Jak můžeme vidět, seriálová aplikace se skládá z několika controlerů a servicy, která komunikuje se serverem (REST API). | |
| My kontroler vytvoříme opět yeomanem. Index kontroler uděláme takto | |
| </p> | |
| <code> | |
| yo angular:controller index --coffee | |
| </code> | |
| <p> | |
| Vidíme, že yeoman stvořil soubory controleru (app/scripts/controllers/index.coffee) | |
| a k němu i test (test/spec/controllers/index.coffee). | |
| Ukázkový obsah vytvořeného controleru přepíšeme, tak aby dělal co v seriálu a adekvátně napíšeme i test. | |
| Obdobně přidáme i ostatní controlery. | |
| </p> | |
| <p> | |
| Ke controleru musíme vytvořit i příslušné view. | |
| </p> | |
| <code> | |
| yo angular:view | |
| </code> | |
| <p> | |
| Yeoman by měl vytvořit soubor app/views/user.html s ukázkovým obsahem, který následně změníte k obrazu svému. | |
| POZN: mě se stalo, že soubor byl vytvořen přimo v rootu projektu, takže je třeba ho přesunout do app. | |
| Holt yeoman je stále ve vývoji. | |
| </p> | |
| <p> | |
| Nyní vytvoříme servicu. | |
| </p> | |
| <code> | |
| yo angular:service --coffee | |
| </code> | |
| <p> | |
| Service je entita, která umí komunikovat se serverem bez pomoci low-level mechanismu jako je $http. | |
| Typicky se skládá z několika tříd, z nichž každá komunikuje se svojí částí vzdáleného API. | |
| Př. PageService komunikuje s částí API pod url "/page". | |
| </p> | |
| <p> | |
| Po napsání servicy napíšeme i příslušný test a zkusíme si testy spustit. | |
| Při mých pokusech s psaním testů jsem dostal stejné errory: | |
| <code> | |
| Error: No module: ngResource | |
| </code> | |
| První googlení mě trklo, že mi chybí angular-resource.js mezi soubory v karma.conf.js. | |
| Ještě jsem raději doinstaloval angular-resource pomocí bower | |
| <code> | |
| bower install angular-resource | |
| </code> | |
| a zkontroloval, zda je jako dependency v bower.json. | |
| Spustil jsem testy a voila! Jiné errory, které však působily chyby v testech. | |
| </p> | |
| Výsledek je na githubu. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment