38
AngularJS SOGETI ANGULARJS TRAINING DAG 1 - THE BIG PICTURE

SOGETI ANGULARJS TRAINING

  • Upload
    lymien

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SOGETI ANGULARJS TRAINING

AngularJS

SOGETI ANGULARJS TRAININGDAG 1 - THE BIG PICTURE

Page 2: SOGETI ANGULARJS TRAINING

WHO ARE WE?

Patrick de Wit Michael de Wit

Page 3: SOGETI ANGULARJS TRAINING

THE FRONT-END UNITSmall groupFE meetingsTechnical meetings

Page 4: SOGETI ANGULARJS TRAINING

THE TRAINING3 EveningsWhat you will learn:

AngularJS ConceptsHow to use AngularJSJavaScript SkillsAnd more...

Page 5: SOGETI ANGULARJS TRAINING

NEED TO KNOWSAsk your questions immediately!Just raise your hand Open the presentation on your laptop:

http://sogeti-summerschool.herokuapp.com/day/1

Page 6: SOGETI ANGULARJS TRAINING

WHO WANTS TO LEARNANGULARJS?

Page 7: SOGETI ANGULARJS TRAINING

WHAT IS ANGULARJS?Plain JavaScriptStructure and guidelinesQuick prototypingFlexibleEasily testableAmazing community!

Page 8: SOGETI ANGULARJS TRAINING

AND WHAT IS IT NOT?Back-End replacementMagicSolution to everything

Page 9: SOGETI ANGULARJS TRAINING

TODAYS AGENDAIntroductionWhy AngularJS?Two-way data bindingBasic concepts

Page 10: SOGETI ANGULARJS TRAINING

WHY ANGULARJS?Single Page Apps

GMail - Twitter - Facebook

Browser Client

Presentation (HTML/CSS)

UI Logic (JavaScript)

Data / Service Access (JavaScript)

Server

service service

Database

JSON

Page 11: SOGETI ANGULARJS TRAINING

THE PRESENTATIONRuns inside a browserSingle Page AppJavaScript = awesome

Stepping through ...... a fragmented slide.

Page 12: SOGETI ANGULARJS TRAINING

CODE EXAMPLES<p>This is some nice content</p><button onclick="doSomething(true)">do something</button>

function doSomething(someBoolean) if (someBoolean) var uselessArray = ['This is a useless string']; for (item of uselessArray) alert(item);

do something

Page 13: SOGETI ANGULARJS TRAINING

WHY ANGULARJS?JavaScript has issues

Page 14: SOGETI ANGULARJS TRAINING

WHY ANGULARJS?JavaScript has issues

Chaotic codeBoilerplatingjQuery spaghetti

AngularJS offers a comprehensive solution

Page 15: SOGETI ANGULARJS TRAINING

JQUERY EXAMPLE<!­­ jQuery Markup ­­><div> <input id="name" type="text"> <span id="greeting">Hello</span></div>

//look up the input elementvar name = $('#name');

//look up the output elementvar greeting = $('#greeting');

//listen for keyboard eventsname.keyup(function()

//update the output element with the new input greeting.text('Hello ' + name.val());

);

Page 16: SOGETI ANGULARJS TRAINING

THE ANGULARJS SOLUTION<div ng­app> <input type="text" ng­model="name"> <span>Hello name</span></div>

Page 17: SOGETI ANGULARJS TRAINING

SECURITYClient-side code!Cross-site scriptingClickjacking

Page 18: SOGETI ANGULARJS TRAINING

HOW CAN I GET STARTED?Local download

<script src="angular.js"></script>

Google's CDN

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

Page 19: SOGETI ANGULARJS TRAINING

ALTERNATIVESEmber.jsBackbone.jsKnockoutReactAnd many more...

Page 20: SOGETI ANGULARJS TRAINING
Page 21: SOGETI ANGULARJS TRAINING
Page 22: SOGETI ANGULARJS TRAINING
Page 23: SOGETI ANGULARJS TRAINING
Page 24: SOGETI ANGULARJS TRAINING

READY... SET... CODE!

Page 25: SOGETI ANGULARJS TRAINING

GIVEN...<input ng­model="name"><button ng­click="name = 'Chuck Norris'">Chuck Norris</button><h2>Hello name || 'Sogeti'</h2>

Chuck Norris

HELLO SOGETI

Page 26: SOGETI ANGULARJS TRAINING

LET'S GET TO IT!http://jsbin.com/vukana/edit?html,output

1. Add a second button that changes the text to 'ArnoldSchwarzenegger'

2. Change the default text to 'AngularJS'3. Extra:

3.1 Create a second input that sets a lastnamemodel attribute

3.2 Create a second label which ouputs data fromthe lastname model attribute

3.3 Let the second button set lastname

Page 27: SOGETI ANGULARJS TRAINING

MODULES

Page 28: SOGETI ANGULARJS TRAINING
Page 29: SOGETI ANGULARJS TRAINING

MODULES

Page 30: SOGETI ANGULARJS TRAINING
Page 31: SOGETI ANGULARJS TRAINING
Page 32: SOGETI ANGULARJS TRAINING

EXAMPLESShopping cartCalendarLogin system (client-side)Your application!

Page 33: SOGETI ANGULARJS TRAINING

CONTROLLERS

Page 34: SOGETI ANGULARJS TRAINING
Page 35: SOGETI ANGULARJS TRAINING

CONTROLLERSDocumentation

http://jsbin.com/keroda/edit?html,js,output

1. Change the default name to your own name2. Display an error when an incorrect name is entered3. Extra:

3.1 Add a button which reverts the displayed nameback to the default name

3.2 Create a history list of names, by appending thename model with a separator and the new name

Page 36: SOGETI ANGULARJS TRAINING

SUMMARYIntroductionWhy AngularJSTwo-way data bindingBasic conceptsAngularJS = Awesome

Page 37: SOGETI ANGULARJS TRAINING
Page 38: SOGETI ANGULARJS TRAINING

THANKS!See you all next week!