Skip to content

Instantly share code, notes, and snippets.

@vencax
Last active December 15, 2015 07:09
Show Gist options
  • Select an option

  • Save vencax/5221684 to your computer and use it in GitHub Desktop.

Select an option

Save vencax/5221684 to your computer and use it in GitHub Desktop.
dil 2
<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