Angular JS
Martin Sandström
A(ng)ular JS
Vad är Angular?
Demos
A(ng)ular JS
Varför Angular?
Hur använder man Angular?
Reservationer:
Jag dissar inte jQuery.
Använder det mest som en jämförelse.
React, Ember, Knockout är också bra databinding verktyg.
Koden är skriven för att ge exempel, hänvisa inte till den som best practice.
A(ng)ular JS
A(ng)ular JS
Vad är angular?
A(ng)ular JS
I hereby declare AngularJS to be MVW framework - Model-View-Whatever
/ Igor Minar, Angular-team
A(ng)ular JS
Varför Angular?
SOC och slippa krångla
Binda data till HTML
* Lyssna på input
* Uppdatera variabel
* Hämta elementet
* Sätt dess värde till variabel
A(ng)ular JS
Hur ser det ut "idag" med jQuery?
jQuery
$('#myButton').click(function(){
var firstName = $('#firstName').val();
var lastName = $('#lastName').val();
var fullNameTag = $('#fullName');
var fullName = firstName + ' ' + lastName;
fullNameTag.val(fullName);
};
A(ng)ular JS
Visar inte html för att spara utrymme.
Angular
<input type="text" ng-model="firstName">
<input type="text" ng-model="lastName">
<p>{{ firstName + " " + lastName }}</p>
A(ng)ular JS
Angular + jQuery?
fungerar, men är ingen bra ide.
"unobtrusive javascript"
A(ng)ular JS
<!-- inte rekommenderat-->
<input type="text" name="date" onchange="validateDate()" />
<!-- rekommenderat-->
<input type="text" name="date" id="date" />
window.onload = function() {
document.getElementById('date').onchange = validateDate;
};
Hur använder man Angular?
A(ng)ular JS
<!-- referens till AngularJS -->
<script src="js/vendor/Angular.js"></script>
<!-- ng-app attributet -->
<body ng-app="myAngularApp">
Kontrollera att JS-ramverket fungerar => börja koda
A(ng)ular JS
<h1> Hello {{ 1 + 1 }} you </h1>
Controller
A(ng)ular JS
angular.module("myAngularApp", [])
.controller("myController", function ($scope) {
$scope.message = "This is a message from myController";
});
<div ng-controller="myController">
<!-- Här bestämmer myController -->
<p> {{ message }} </p>
</div>
$scope
"Scope is the glue between application controller and the view."
Två sätt att binda till $scope
Service
A(ng)ular JS
Loose coupling
SOC
angular.module("myAngularApp", [])
.controller("myController", function ($scope, gameService) {
$scope.games = gameService.getGames();
});
A(ng)ular JS
"Borde inte någon ha tänkt på detta?"
Directive
A(ng)ular JS
Olika sidor kan dela på samma HTML
Resulterar i reusability
<my-shared-table></my-shared-table>
Web components
Testning
e2e-test
unit-test
Mock för att testa bla data connections och klick-event.
ng-Animate
ng-Route
ng-Touch
A(ng)ular JS
Så pass stort att man har lyft ut vissa delar
DEMO(s)
A(ng)ular JS
Nya webben
A(ng)ular JS
A(ng)ular JS
A(ng)ular JS
Controller As
angular.module("myAngularApp", [])
.controller("myController", function () {
var controller = this;
controller.message = "this is a message from the controller";
});
<div data-ng-controller="myController as vm">
<p> {{ vm.message }} </p>
</div>
Frågor?
Tack!
martinsandstrom.github.io
A(ng)ular JS
deck
By Martin Sandström
deck
- 1,423