<script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>



Relevanta dokument
INTRODUKTION TILL ANGULAR JS

Webbutveckling med AngularJS

Appar med ryggrad. Introduktion till JavaScriptramverket Backbone

Kursplanering Utveckling av webbapplikationer

JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Webbteknik för ingenjörer

MVC med Javascript och Ajax. Filip Ekberg

JavaScript. JavaScript Ramverk (Bibliotek) jquery + jquery UI

Modern webbutveckling. av Robert Welin-Berger

Prototyping och utveckling med AngularJS

Avancerade Webbteknologier

ASP.NET Web Forms. Copyright Mahmud Al Hakim Vad är Web Forms?

Räkna med ASP.NET MVC 3

En grundkurs i hemsidor och hur de är uppbyggda

JAVASCRIPT. Beteende

Nätet. Uppgiften. Nivå

Du kan själv följa med i denna steg-för-steg guide i din texteditor.

Sidan kommer inte läggas upp någonstans utan du redovisar den för mig på något handledningstillfälle.

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Filhanterare med AngularJS

Användarhandledning Version 1.2

Labora&on 1 Variabler och beräkningar övningar/uppgi9er

JavaScript. DOM Scripting

Webbutveckling Laboration 1: HTML5 och CSS3.

Laboration 2: Xhtml och CSS.

Hybridappar. Utveckla mobilappar i HTML, Javascript och CSS

Fortsättningskurs Webbklientprogrammering

Labora&on 7 Syfte med laborationen:

Programmeringteknik. Planering MÅL LABB: MOMENT LAB4 HTML - EXEMPEL HTML. Webbdelen

ASP.NET MVC. Copyright Mahmud Al Hakim Innehåll

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

Laboration 1. Webbprodution Struktur & innehåll HT2015

Presentera dig själv Laboration 1

Labora&on 2 Funk&oner, if och loop övningar/uppgi:er

En bortsprungen katt

Föreläsning 2. Operativsystem och programmering

ITK:P2 F1. Hemsidor med HTML HTML. FTP, HTTP, HTML, XML och XHTML

Del 1 och 2 HTML/CSS. Webbutveckling Laboration 1 Nicklas Bostedt

Spelprogrammering med JavaScript och HTML5

Xhtml och CSS.Tillämpad fysik och elektronik Per Kvarnbrink (redigering Ulf Holmgren 2011)

Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner

TUTORIAL: KLASSER & OBJEKT

Säkerhetskopiera mobilen

Att styla webbsidor. Nivå. Uppgiften

Tillämpad fysik och elektronik Per Kvarnbrink m.fl. Laboration 2: HTML och CSS.

Innehålls förteckning

Slutrapport Thunderbug

Tillämpad Programmering. Ekonomi + Spel + Javascript

Labora&on 2 HTML och validering övningar/uppgi:er

Språk för webben introduk4on 4ll HTML

Så får du Microsofts Office-paket gratis

Webbprogrammering TDDD52

On-line produktion TDDC61

Struktur och innehåll Laboration 2

Dynamiska webbsystem. Ajax

Introduk+on +ll programmering i JavaScript

Kort om World Wide Web (webben)

Varför ska man använda ett CMS? Vilka är fördelarna och är det alltid bra? Kattis Lodén

Sammanfattning. Applikationen är utvecklad i Microsofts utvecklingsmiljö Visual Studio 2012.

Karlstads Universitet, Datavetenskap 1

Innehåll. Dokumentet gäller från och med version

Lektion 3 HTML, CSS och JavaScript

Version Namn Datum Beskrivning 1.0 Förutsättningar Vitec Ekonomi 1.1 Marie Justering för krav på Windows Server

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

Dokumentmallar i praktiken, Nyps

Webbplats analys emreemir.com

Hur hänger det ihop? För att kunna kommunicera krävs ett protokoll tcp/ip, http, ftp För att veta var man skall skicka

Utveckling av webbapplikationer med.net, DVA213 (1 av 5)

Laboration 1 XML, XPath, XSLT och JSON

Programmering B med Visual C

Anna Jonströmer. Bloggning

Grundläggande datalogi - Övning 1

Kompletterande exempel till XSLT

API:er/Mashup. Föreläsning 4 API:er och Mashups. Johan Leitet johan.leitet@lnu.se twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449

I den här labben ska vi använda oss av en trevlig nyhet i HTML5: Local Storage, för att implementera en sorts lokal gästbok.

Designmönster i Javascript

Guide för Innehållsleverantörer

HTML och CSS. Eric Elfving Institutionen för Datavetenskap (IDA)

[[Det här är en länk]] Skapar en länk till en passage som heter Det här är en länk.

En snabb titt på XML LEKTION 6

Content Management System. Publiceringssystem

Självständigt arbete på grundnivå

EDA095 HTML. Per Andersson. April 26, Lund University Innehåll: HTML, CSS, DOM, JavaScript

Webbprogrammering. Sahand Sadjadee

ASP.NET Thomas Mejtoft

Elektronisk publicering TNMK30

Övningar i JavaScript del 4

10 smarta appar som ger Chrome mer muskler

EXAMENSARBETE. Mobila anpassningar. Joakim Wallmark Ali Rahimpour. Högskoleingenjörsexamen Datateknik

Det ska endast finnas två bilder av samma typ på spelplanen.

WEBBUTVECKLING Kursplanering

WEBDESIGN A - DTR 1210

Kodtimmen med Swift Playgrounds

! HTML Formulär! JavaScript! Syntax! Events! DOM. ! URL variabler i en query string (get) ! HTTP post request (post)

E11 "Protection" Föreläsning 11, HT2014 Säkerhet, tillgänglighet. Johan Leitet. Kurs: 1dv403 Webbteknik I

Guide för kunder med Nordea e-legitimation

Game of 40. Regler och om sidan är in princip samma sak. Det som skiljer dem åt är att de inte har samma text.

Transkript:

AngularJS Skriven av: Isak Glans. Datum: 2015-04-29. Kurs: Webbutveckling. Lärare: Per Sahlin. Utbildning: Systemutvecklare i.net, Newtons Yrkeshögskola. 1

Sammanfattning Syftet med denna uppsats är att ge en praktisk inledning till ramverket AngularJS för nybörjare. Denna guide kommer inte att ge en heltäckande grund i AngularJS, men förhoppningsvis de första stegen som behövs för att komma igång med att lära sig detta ramverk. För att du som läsare skall kunna förstå denna guide så behöver du kunna grunderna HTML och Javascript. Inledning Angular är ett populärt Javacript ramverk (eng. framework) utvecklats av Google omkring 2009. Den används ofta för att programmera ihop det grafiska gränssnittet i såväl mobil- som webbapplikationer. Angular applikationer är tänkt att skapa så kallade single page applikationer (SPA). En single page applikation är en webbapplikation som påminner mer om ett datorprogram (s.k. rich extensible web applications) än en HTML webbsida. Detta innebär att man egentligen utgår ifrån en enda index html fil, och som sedan delvis uppdateras när användaren interagerar med webbapplikationen. Istället för att ladda om sidan på nytt så uppdaterar man exempelvis enbart en div-taggs innehåll. Installation Det första steget för att lära sig Angular är att antingen ladda ner ramverket (https://angularjs.org/), eller också länka in den i din HTML header med ett så kallat CDN script på följande vis: <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> Om du väljer att ladda ner Angular så får du en zip fil med en rad filer. För att göra de exempel som visas i denna guide så behöver du egentligen bara en fil, nämligen angular.min.js. Nästa steg är att skapa dig en index.html fil, vari du länkar in Angular. Därefter behöver du skapa dig en javascriptfil som du också länkar in i din index.html fil. Nästa steg är att bli bekant med några av de nyckelord som Angular använder i HTML. Angular i HTML Angular är ett kraftfullt ramverk som ger enkla redskap för att skapa kopplingar (eng binding) mellan data och interface (i detta fallet html filen). Så här kan Angular koden se ut i ett HTML dokument : Exempel 1. <!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js" ></script> </head> <body> <div ng-app=""> 2

<p>name: <input type="text" ng-model="name" /></p> <p ng-bind="name"></p> </div> </body> </html> Exempel 1 gör en koppling (eng. binding) mellan input elementet och paragraf-taggen. Det som skrivs i input elementet kommer också att visas i paragrafen. Allt som krävdes var den kod som visas ovan, och AngularJS ramverket. Observera följande nyckelord: ng-app, ng-model, och ng-bind. Dessa är reserverade ord som används i Angular JS. Lite förenklat kan man förklara hur de används i exemplet på följande sätt: Ng-app säger att html-elementet (med alla sina barnobjekt) är en angular modul. Ng-model säger att input elementets text är en egenskap i ng-app. Ng-bind säger att paragrafen är ihopkopplad med input taggen. Exempel 1 kommer egentligen inte att validera i W3C:s valideringstest, eftersom webläsaren inte känner till Angulars syntax. För att komma runt detta problem kan man lägga till HTML taggen data- före ng-taggarna. <div data-ng-app=""> <input type="test" data-ng-model="firstname"> <p>the name is <span data-ng-bind="firstname"></span></p> </div> För att skriva logiska beräkningar i HTML använder man så kallade expressions. En expression skrivs ut med dubbla hakparentser {{ }} på följande vis: <p>my first expression: {{ 5 + 5 }}</p> På detta sätt kan man även skriva ut model data. <div data-ng-app=""> <input type="test" data-ng-model="firstname"> <p>the name is {{firstname}}</p> </div> Variabler och Iterationer Med hjälp av AngularJS kan man skapa variabler i HTML koden, och göra iterationer. Följande exempel skapar en array i body taggen, och sedan itererar igenom den i en ul-tagg: <!DOCTYPE html> <html data-ng-app=""> <head> <title>iteration</title> </head> <body data-ng-init="names=['pelle', 'Lisa', 'Ida']"> <ul> 3

</ul> <li data-ng-repeat="personname in names"> {{ personname }}</li> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> </body> </html> Observera att ng-app ligger i HTML-taggen. Detta görs för att knyta hela index.html till en modul. För att deklarera en variabel i AngularJS används syntaxen data-ng-init. Data-ng-repeat säger åt AngularJS att gör en iteration. Ng-repeat kan även ta emot argument som gör iterationen än mer kraftfull. Exempelvis kan man lägga in ett filter i iterationen på följande sätt: <ul> <li data-ng-repeat="personname in names filter:'lisa'">{{ personname }}</li> </ul> Designmönster MVW bygger liksom många andra populära ramverk idag, på idén att man skall separera kod logik från presentation. Detta innebär att man försöker att placera logik och data källor i vad som kallas för en model. Den biten av ett projekt som berör presentation kallas för view. För att sammanlänka en model med en view används en controller, men också något som heter scope (mer om detta senare). En del programmerare skulle säga att detta sätt att sammanlänka model och view borde ses som en s.k. modelview arkitektur, och andra att det helt enkelt är en controller som i MVC (Model View Controller). Eftersom systemutvecklarna bakom AngularJS valt att inte ta ställning i denna fråga så har de benämnt sitt designmönster för MVW (Model View Whatever). En AngularJS applikation består, förenklat sett, av följande bitar : module, controller, scope och view. För att förstå dessa byggstenar tänkte jag vissa några exempel. MVM exempel Något förenklat kan man säga att en module representerar en behållare för till exempel controller, factory och m.m. Se bild nedan. 4

Illustration 1: Bild hämtad från video: Wahlin En modul skapas med följande kod: var app = angular.module('myapp', []); Modulen i exemplet ovan har döpts till myapp. Hakparenteserna presenterar s.k. dependencies, men de förklaras inte i denna guide. För att initiera modulen så skriver följande i HTML-taggen i din index.html fil: <html ng-app="myapp"> Nu vet Angular att index.html filen är knuten till din modul. Följande kod visar ett exempel som visar en modul, controller och scope. <!DOCTYPE html> <html data-ng-app="demoapp"> <head> <title>controller & scope</title> </head> <body data-ng-controller="simplecontroller"> <h1>controller & scope</h1> <ul> <li data-ng-repeat="personname in names">{{ personname}}</li> </ul> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> <script> var demoapp = angular.module('demoapp', []); var mycontrollers = {}; mycontrollers.simplecontroller = function ($scope) { $scope.names = ['Pelle', 'Lisa', 'Ida'] 5

} demoapp.controller(mycontrollers); </script> </body> </html> En controller i AngularJS har som funktion att hantera logik, och att bland annat spara data i $scope objektet. $scope objektet används sedan i view:en, det vill säga en HTML fil, för att t ex skriva ut datat. $scope kan liknas vid klistret som håller ihop en controller med en view. Den behövs inte deklareras eftersom den skapas av AngularJS. Inte heller behöver man säga åt Angular att skicka med $scope objektet, för det görs automatiskt. Detta var en kort inledning till hur AngularJS. Förhoppningsvis kan detta vara en början på någons väg i att lära sig detta populära javascriptramverk. Referenser - w3schools.com. Tillgänglig: http://www.w3schools.com/angular/angular_intro.asp. - Alicea, Tony (2014-10). Learn and Understand AngularJS - The First 50 Minutes. tillgänglig: https://www.youtube.com/watch?v=ejbkojeg6f0. - Wahlin Dan (2013-04). AngularJS Fundamentals In 60-ish Minutes, tillgänglig: https://www.youtube.com/watch?v=i9mhiguzkem. 6