Appar med ryggrad. Introduktion till JavaScriptramverket Backbone

Relevanta dokument
<script src= "

INTRODUKTION TILL ANGULAR JS

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

Moderna Jfokus, Stockholm Monday, February 4, 13

JavaScript. DOM Scripting

JAVASCRIPT. Beteende

JavaScript. JavaScript Ramverk (Bibliotek) jquery + jquery UI

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

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.

Webbutveckling med AngularJS

JavaScript. En Introduktion

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

Exemple på Tentauppgifter Webbprogrammering

MVC med Javascript och Ajax. Filip Ekberg

Du skall naturligtvis visa körexempel med output där det behövs i din rapport!

Att bygga enkla webbsidor

Introduk+on +ll programmering i JavaScript

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

Karlstads Universitet, Datavetenskap 1

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

Kursplanering Utveckling av webbapplikationer

Lite mer om CGI-programmering

Lektion 3 HTML, CSS och JavaScript

Webbprogrammering. Sahand Sadjadee

Räkna med ASP.NET MVC 3

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

JS & beteende. TNMK30 - Elektronisk publicering

Tillämpad Programmering. Ekonomi + Spel + Javascript

En bortsprungen katt

Nätet. Uppgiften. Nivå

Modern webbutveckling. av Robert Welin-Berger

PageSpeed Insights. Att komprimera resurser med gzip eller deflate kan minska antalet byte som skickas via nätverket.

Riktiga Vykort Partner webb Teknisk beskrivning

Spelprogrammering med JavaScript och HTML5

JavaScript En Introduktion

WEBBUTVECKLING Kursplanering

Fortsättningskurs Webbklientprogrammering

Webbsidor och webbservrar

Next -> Next -> Finish

Innehåll. JavaScript - Grundkurs. Vad är JavaScript? Vad är JavaScript? Vad behövs? Lite historia

Asp.net mvc intro PER KVARNBRINK,

JavaScript in SharePoint and not just for Apps. Wictor Wilén

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

E13 Behind the Wild. Dagens agenda. Cookies Context/ändra context Augmentation (förstärkning) Klassiskt arv Att låna metoder Namespaces Postludium

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

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

Avancerade Webbteknologier

Testautomatisering. HTML, Dev Tools, Watir

Vis it. jquery jquery används lite överallt i appen på olika sätt. Det främsta användningsområdet är vid selektering och manipulering av HTML element.

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

Materialspecifikationer

UNDERSÖKNING AV PRESTANDA MED MVC INTEGRERAT I ETT CMS

E07 "Greased Lightning"

Model View Controller. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

En snabb titt på XML LEKTION 6

Labb LIVE. Exempelkod från föreläsningen. Plushögskolan Frågeutveckling inom MSSQL - SU14

Kompletterande exempel till XSLT

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

Bilder. Bilder och bildformat

1ME323 Webbteknik 3 Lektion 6 API. Rune Körnefors. Medieteknik Rune Körnefors

<header> </header> <footer> </footer>

Laboration 6 Formulär och stränghantering övningar/uppgifter

Dynamisk HTML JavaScript och webbläsarens objektmodell

Integrerad i egen cup-portal Sid 1

F8 Webbteknologier 2. PHP PHP: Hypertext Preprocessor

Lektion 5 HTML, CSS, PHP och MySQL

// GET: Test1/Index2 // Syftet är att se hur olika url:er leder till olika actions

1. Öppna InteraktivBok.fla och Main.as från förra övningen. 2. Gå till Main.as. Den bör se ut som följer:

En grundkurs i hemsidor och hur de är uppbyggda

Content Management System. Publiceringssystem

En integration av betalningssystem på hemsida

E13 "Behind the Wild"

TNMK30. Elektronisk publicering

Ljud och video på webbsidor

PageSpeed Insights. Ta bort JavaScript- och CSS-kod som blockerar renderingen från innehåll ovanför mitten

Inför prov 1 i webbdesign

Carl-Oscar Hermansson WEBB DESIGN

JavaScript del 9 Dynamik och animeringar

Slutrapport Thunderbug

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

729G28. Webbprogrammering och databaser. Introduktion till webbutveckling med PHP. Jakob Pogulis Institutionen för Datavetenskap (IDA)

Lektion 2 Del 1 Kapitel 6

Användarhandledning Version 1.2

NU! NU! Bygg en webbplats NU! Bygg en webbplats. Swedish Language Edition published by Docendo Sverige AB. Bygg en webbplats.

Övning MS SQL och MVC del 2

Föreläsning 4. CSS Stilmallar för webben

Introduktion HTML och PHP 732G16 Databaser design och programmering

On-line produktion TDDC61

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

F8 Webbteknologier 2. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

Vidareutveckling av AppCMS

MVC med Javascript och Ajax. Filip Ekberg

XtraMatLagning. August Ek och Oscar Johnson. TNM065 Dokumentstrukturer

Uppmärkningsspråk. TDP007 Konstruktion av datorspråk Föreläsning 4. Peter Dalenius Institutionen för datavetenskap

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

TENTAMEN I INTRODUKTION TILL MEDIEPRODUKTION, 5p

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

Lektion 2 - CSS. CSS - Fortsätt så här

F06 A table form Dagens agenda

WEBDESIGN A - DTR 1210

Transkript:

Appar med ryggrad Introduktion till JavaScriptramverket Backbone

Vanlig webbsida Databas

MVC - Model View Controller

MVC - Model View Controller

MVC

Backbone.js Ger struktur Bygger på MVC konceptet Tvingar inte till EN lösning

Backbone Jquery Backbone Underscore <!doctype html> <html> <head> <title>hv</title> </head> <body> <script src= http://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script> <script src= http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.2/underscore-min.js" type="text/javascript"></script> <script src= http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.0.0/backbone-min.js" type="text/javascript"></script> <script type="text/template" id="login-template"> <div id="loginwrap"> Användarnamn <br><input name="username" type="text" value="" /> <br>lösenord <br><input name="password" type="password" value="" /> <br><a href="/" class="login">logga in</a><br/> <div id="login-error" style="display:none;">inloggning misslyckad. <br/>felaktigt användarnamn eller lösenord.</div> </div> </script>

Model //Här deklarerar vi klassen Person som är en Model var Person = Backbone.Model.extend({ //Plats för kod });

Model //Här deklarerar vi klassen Person som är en Model var Person = Backbone.Model.extend({ //defaults är standardvärden som finns om man inte anger annat defaults: { name: 'Guest User', age: 23, occupation: 'Worker' }, //work är en egendefinierad funktion som man kan anropa med object.work() work: function(){ return this.get('name') + ' is working.'; } });

Använda Modellen //Vi skapar ett nytt objekt av klassen Person var nyperson = new Person; nyperson.set('name', 'Lisa') //uppdaterar name nyperson.set('age', 26) //uppdaterar age nyperson.set('occupation', 'kodare') //uppdaterar //occupation nyperson.work(); //Kommer att ge svaret Lisa is working

Dags för en View //Här deklarerar vi klassen PersonView som är en View var PersonView = Backbone.View.extend({ }); tagname: 'li' //Normalt ritar backbone upp vyer som //div, men här vill vi ha en lista

Ännu lite mer i vyn //Här deklarerar vi klassen PersonView som är en View var PersonView = Backbone.View.extend({ tagname: 'li', //Funktionen initialize körs första gången när man skapar ett objekt initialize: function () { this.render(); }, //Funktionen render ritar ut data från modellen på view (HTML sidan) render: function () { //$el är den lite magiska taggen i HTML-sidan där texten skrivs. this.$el.html(this.model.get('name') + ' (' + this.model.get('age') + ') - ' + this.model.get('occupation')); //this är för att komma till aktuell sida (jag) } });

Använda Vyn //Vi skapar ett nytt objekt av klassen Person var nyperson = new Person; //Ge personen ett namn nyperson.set('name', 'Frida'); //Vi skapar ett nytt objekt av klassen PersonView var minpersonvy = new PersonView({ model: nyperson }); //här ritar vi minpersonvy till webbsidan. Vanlig JQuery $(document.body).html(minpersonvy.el);

Templates render: function () { this.$el.html(this.model.get('name') + ' (' + this.model.get('age') + ') - ' + this.model.get('occupation')); } I stället i HTML sidan: <script id="persontemplate" type="text/template"> <strong><%= name %></strong> (<%= age %>) Yrke: <%= occupation %> </script>

Templates I JavaScript: //template bygger på biblioteket underscore, därav syntaxen //#persontemplate är det id som scriptet har i HTML sidan template: _.template( $('#persontemplate').html()), //tojson gör om Modellens objekt till ett format som //templaten förstår render: function () { this.$el.html( this.template(this.model.tojson()));

Händelser I HTML sidan: <script id="persontemplate" type="text/template"> <strong><%= name %></strong> (<%= age %>) Yrke: <%= occupation %> <input type="button" id="btnselect" value="välj" /> <input type="button" id="btncancel" value="avbryt" /> </script>

Händelser I JavaScript: var PersonView = Backbone.View.extend({ //events består av tre delar. 1. Vilken typ av händelse, 2. vilket Id det //gäller och 3. Vilken funktion som ska köras events: { 'click #btnselect' : 'showselect', 'click #btncancel' : 'showcancel' }, //den här funktionen hämtar värdet på name som finns i modellen showselect: function(){ alert("du klickade på Välj-knappen för " + this.model.get("name")); }, showcancel: function(){ alert("du klickade på Avbryt"); }, //osv

Övningar och kodexempel http://mhandelsplatsen.se/doc/backbone1.zip http://mhandelsplatsen.se/doc/backbone1.pdf Bra länk http://www.codebeerstartups.com/2012/12/a-complete-guide-for-learningbackbone-js