Vývojařská Plzeň AngularJS



Podobné dokumenty
Moderní webové aplikace AngularJS

Proč Angular JS framework?

Formuláře. Internetové publikování

AngularJS. framework pro moderní webové aplikace. 24.března CZJUG Brno. Milan Víťa

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

Tlačítkem Poskládej jiný počítač se hra vrátí na úvodní obrazovku a lze zvolit jiný obrázek.

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie


KIV/PIA 2013 Jan Tichava

KAPITOLA 1 SOCIÁLNÍ SÍTĚ A PHP...17

Informační systémy 2008/2009. Radim Farana. Obsah. Aktivní serverové stránky ASP. Active Server Pages. Activex Data Objects. LDAP database.

RESTful API TAMZ 1. Cvičení 11

PHP Best Practices. Please try to fit your code to 80 columns. That's decimal 80. A. Morton

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu

DEVFEST ANGULAR 2 WORKSHOP. angular.cz

Integrovaný agent obchodníka elektronického obchodu (IMA) Příručka správce

Webové formuláře v HTML5 a Web Forms 2.0

Webové služby. Martin Sochor

12. Základy HTML a formuláře v HTML

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

ANGULAR 2 WORKSHOP. angular.cz

OBALKYKNIH.CZ API 3.0, IMPLEMENTACE PRO ALEPH OPAC

JSON API pro zjišťování cen MtG karet

Minebot manuál (v 1.2)

4. POČÍTAČOVÉ CVIČENÍ

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Šablonovací systém htmltmpl vypracoval: Michal Vajbar, Šablonovací systém htmltmpl

Část 1 Moderní JavaScript

Ember.js. Jan Kopřiva, Vojtěch Jasný

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

NA CO SI DÁT POZOR V JAVASCRIPTU? Angular.cz

(X)HTML. Internetové publikování

Zranitelnosti webových aplikací. Vlastimil Pečínka, Seznam.cz Roman Kümmel, Soom.cz

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Návrh a tvorba WWW stránek 1/38 PHP

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

OMO Patterny pro UI. Základy UI - HTML, DOM, JavaScript, CSS. Single Page Application

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

AJAX. Dynamické změny obsahu stránek

Stručný obsah. Část I Úvod. Část II Komponenty

Mediální komunikace. Vysoká škola mezinárodních a veřejných vztahů PhDr. Peter Jan Kosmály, Ph.D

novinky v HTML5 nové sémantické tagy canvas video geolocation local storage web workers

Vyšší odborná škola a Střední škola,varnsdorf, příspěvková organizace. Šablona 13 VY 32 INOVACE

Jaku b Su ch ý 1

Web Services na SOAP

Webové programování je CHALENGE! Milan Čapoun, Samuel Šramko

GWT pro pokročilé. MoroSystems, s.r.o. Pavel Klobása. Senior Java Developer.

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ

Greasemonkey. Uživatelské skriptování (nejen) ve Firefoxu

Ing. Jiří Fůsek. Základní informace. Pracovní zkušenosti. Vzdělání. 09/ nyní Freelancer. 09/ /2010 Univerzita Tomáše Bati ve Zlíně

Vývoj Internetových Aplikací

Software je ve světě IT vše, co není Hardware. Do softwaru patří aplikace, program, proces, algoritmus, ale i data (text, obrázky), operační systém

Maturitní otázka webové stránky (technologie tvorby webu) Co znamená pojem Web? Web, www stránky, celým názvem World Wide Web,

PRG036 Technologie XML

Internet cvičení. ZS 2009/10, Cvičení 3., Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP

Měření konverzí pomocí HLEDEJCENY.cz

API pro volání služby kurzovního lístku KB

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

Úvod do PHP s přihlédnutím k MySQL

Programování v jazyce JavaScript

OMO Patterny pro UI. Základy UI - HTML, DOM, JavaScript, CSS. Single Page Application

České Budějovice, Emy Destinové 395

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Databáze Caché CSP Custom Tags

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Pear - hruška Systém pro implementaci a distribuci znovupoužitelných komponent (v PHP) Strukturovaná knihovna open-source (PHP) skriptů Systém pro dis

Grafické rozhraní pro práci s formuláři přes internet Graphic interface for working with forms placed on Internet. Bc.

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

ZÁVĚREČNÁ STUDIJNÍ PRÁCE dokumentace

Marian Böhmer. Zend Framework. Programujeme webové aplikace v PHP

Michal Augustýn Microsoft Most Valuable Professional

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

Pokročilé Webové služby a Caché security. Š. Havlíček

Budte chytří při vytváření aplikací

Web frameworks v praxi

INFORMAČNÍ SYSTÉMY NA WEBU

- 1 - Smlouva o dílo. uzavřená podle 536 a násl. obchodního zákoníku v účinném znění

XML schémata XML teorie a praxe značkovacích jazyků (IZI238)

Krajská knihovna Karlovy Vary Váš druhý domov...

Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013

2N Helios IP HTTP API

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Hypertext Transfer Protocol (HTTP/1.1 RFC 2616) Počítačové sítě Pavel Šinták

Sem vložte zadání Vaší práce.

Rezervační systém Tvorba WWW stránek

[APLIKACE PRO PŘEHRÁVÁNÍ VIDEA - PROJEKT MIAMI]

HMI * nad webovými technologiemi

VYSOKÁ ŠKOLA POLYTECHNICKÁ JIHLAVA Katedra elektrotechniky a informatiky Obor Aplikovaná informatika

Zápasíme s REST API. Lukáš Křečan REST API Architect GoodData

Anabix API. Popis způsobu používání služby

Redakční systém. SimpleAdmin Beta. Jan Shimi Šimonek

KIV/PIA Semestrální práce

Na tomto místě se bude nacházet oficiální zadání bakalářské práce.


Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

PŘEHLED A MOŽNOSTI VYUŽITÍ WEBOVÝCH MAPOVÝCH SLUŽEB

Základní pojmy spojené s webovým publikováním ~ malý slovníček pojmů~ C3231 Základy WWW publikování Radka Svobodová, Stanislav Geidl

Django, 2. cvičení url, views, templates. Úvod

HTML5 IN EDUCATION AT THE DEPARTMENT OF COMPUTER SCIENCE OF THE FACULTY OF EDUCATION AT THE UNIVERSITY OF SOUTH BOHEMIA, ČESKÉ BUDĚJOVICE, CZ

Webové Aplikace (6. přednáška)

Transkript:

Vývojařská Plzeň AngularJS

Milan Lempera @milanlempera Víťa Plšek @winsik PHP -> Javascript PHP -> Java -> Javascript www.angular.cz

?

Psal se rok 2009 ano 2009... Jak se tehdy tvořili webové aplikace? pomocí server-side frameworků scriptování v jquery Původním cílem AngularJS byl komerční framework náhrada stávajících view příklon k Single Page aplikacím

Serverside VS SPA

Serverside VS SPA požadavek HTML - celá stránka 1.požadavek aplikace požadavek HTML - konkrétní oblast požadavek na data data

Šablonový systém v AngularJS <html ng-app> <head> <script src="https://../angularjs/1.4.8/angular.min.js"></script> </head> <body> <h1>ahoj {{city.name}}</h1> Upravit oslovení: <input type="text" ng-model="city.name" /> </body> </html> ukázka

Directivy <span ng-if="user.enabled"> {{user.name}} </span> <tr ng-repeat="user in users"> <td>{{user.name}}</td> </tr>

Dvoucestný databinding - milovaný i nenáviděný

Dvoucestný databinding - milovaný i nenáviděný <h1>ahoj {{city.name}}</h1> Upravit oslovení: <input type="text" ng-model="city.name" /> Watcher last value curent value changed? {{city.name}} false city.name (ngmodelwatch) false

Dvoucestný databinding - milovaný i nenáviděný <h1>ahoj {{city.name}}</h1> Upravit oslovení: <input type="text" ng-model="city.name" /> Watcher last value curent value changed? {{city.name}} Plzeň true city.name (ngmodelwatch) Plzeň true

Dvoucestný databinding - milovaný i nenáviděný <h1>ahoj {{city.name}}</h1> Upravit oslovení: <input type="text" ng-model="city.name" /> Watcher last value curent value changed? {{city.name}} Plzeň Plzeň false city.name (ngmodelwatch) Plzeň Plzeň false

Dvoucestný databinding - jak s ním žít angular výrazy vyhodnocuje pokud se něco mohlo změnit musí být rychlé nemáte pod kontrolou počet volání počet watcherů < ~2500 + výměnou za to můžete pracovat přímo s JS objekty + ve většině případů vám ušetří čas a kód

Formuláře <form name="breweryform"> <input id="brewery-year" type="number" name="year" ng-model="brewery.year" required /> </form> // angular vytvoří objekt breweryform.year = { = { $submitted: $dirty: false, false, $pristine: true, $dirty: $valid: false, $pristine: $invalid: true, $valid: $touched: false, false, $invalid: true, $error: $untouched: {required: true, Array[1]} } $error: { number : true required : true } }

Dependency injection var UserStore = function() { this.httpservice = HTTPService.getInstance(); } var UserStore = function(httpservice) { this.httpservice = httpservice; }

Dependency injection v angularu var BreweryServiceConstructor = function() { // služba řeší komunikaci se serverem } var BreweryController = function(breweryservice) { this.breweries = breweryservice.load(); }; angular.module("beerapp", []).controller("brewerycontroller", BreweryController).service("breweryService", BreweryServiceConstructor);

Komunikace se serverem $http - základní rozhraní $resource - jednoduché pojetí RESTu var Brewery = $resource('/api/v1/brewery/:id', {id : '@id'}); var list = Brewery.query({'page' : 2}); // GET /api/v1/brewery var brewery42 = Brewery.get({id : 42}); // GET /api/v1/brewery/42 brewery42.name = 'Janáček'; brewery42.$save(); // POST /api/v1/brewery/42 brewery42.$delete(); // DELETE /api/v1/brewery/42

Promise step1(function (value1) { step2(value2, function(value3) { step3(value3,. ); }); }); functionwithpromise().then(promisedstep2).then(function (value2) { // Do something }).catch(function (error) { // Handle error from // all above steps })

Interceptory ratingservice Intercetor Server přidat hodnocení 401 Unauthorized Modální přihlašovací okno požadavek na přihlášení autentizační token Klient přidat hodnocení (opakovaný požadavek) hodnocení přidáno (201 Created)

Routing #/brewery controller: BreweryListController, templateurl: brewery/list.html #/brewery/edit/:id controller: BreweryEditController, templateurl: brewery/edit.html brewery/list.html nebo brewery/edit.html

Vlastní elementy - directivy potřebujeme předat data reagovat na akce <brewery-form brewery="..." on-save="..." on-cancel="..."> </brewery-form>

Vlastní elementy - directivy var directivedefinitionobject = { templateurl: "breweryform.html", }; controller: controllerconstructor bindtocontroller: { brewery: '=', onsave: '&', oncancel: '&' },... <brewery-form brewery="..." on-save="..." on-cancel="..."> </brewery-form> angular.module('beerapp.breweryform', []).directive("breweryform", function() { return directivedefinitionobject; })

Proč si angular vybrat Výborná dokumentace Početná komunita Ucelený framework Oddělení kódu a html Testovatelnost ngmock protractor Velké množství komponent a knihoven AngularJS přerostl své odvětví

MOST POPULAR TECHNOLOGIES Stack Overflow - Developer Survey 2015

Kdy ho použít? Aplikace, aplikace aplikace informační systémy kalkulační nástroje téměř cokoli za přihlášením Tam kde potřebujete vyměnit view a dokážete postavit REST API

Kdy ho nepoužít? Z důvodu SEO Z důvodu výkonu klasické webové stránky (není náhrada jquery) vysoce dynamické aplikace Excel inzerce, e-shopy?

Na co si dát pozor? množství a rychlost watcherů více aplikací na jedné stránce pište čistý kód malé části kódu řešící jedem problém nespoléhejte na odstínění od javascriptu prototypová dědičnost promise this

Kdo ho používá Youtube, PayPal, Mall, GoG, InvisionApp, Blue Origin, Lego Indiegogo, Docker, Best buy, NBA, Forbes, CNN, Weather... https://www.madewithangular.com

Budoucnost - 1.x vs 2.0 důvod? technologie? datum vydání? upgrade? Má smysl na něj čekat? 2.0 bude úplně nový framework...

Díky za pozornost... a nešetřete záludnými dotazy.

Zdroje - www.angular.cz/plzen-2015