Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Angular #6
Search
Danila Marchenkov
August 19, 2017
Programming
81
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Angular #6
Danila Marchenkov
August 19, 2017
More Decks by Danila Marchenkov
See All by Danila Marchenkov
Rxjs
sprit3dan
0
120
angular6
sprit3dan
0
80
angular5
sprit3dan
0
63
angular#4
sprit3dan
0
170
angular#3
sprit3dan
0
57
angular#2
sprit3dan
0
44
Angular#1
sprit3dan
0
73
HTML 5 Canvas
sprit3dan
0
55
Angular #5
sprit3dan
0
130
Other Decks in Programming
See All in Programming
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
640
気持ちぃ〜角丸 Squircle
ryu1013
0
150
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
350
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
200
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
contenteditable と日本語入力に向き合う
colorful12
0
180
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.9k
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
160
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
470
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8k
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.1k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
560
Chasing Engaging Ingredients in Design
codingconduct
0
350
Building Applications with DynamoDB
mza
96
7.2k
Marketing to machines
jonoalderson
1
5.9k
A better future with KSS
kneath
240
18k
Visualization
eitanlees
153
17k
Claude Code のすすめ
schroneko
67
230k
Into the Great Unknown - MozCon
thekraken
41
2.8k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
58k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Amusing Abliteration
ianozsvald
1
330
Transcript
AngularJS 1.5.x Marchenkov Danila, Software Developer
AngularJS DI
.config() Gets executed during the provider registrations and configuration phase.
Only providers and constants can be injected into configuration blocks.
.run() Gets executed after the injector is created and are
used to kickstart the application. Only instances and constants can be injected into run blocks
implicit annotation • ng-annotate • strict-di • $inject someModule.controller('MyController', function($scope,
greeter) {
angular.module('myApp', []) .factory('willBreak', function($rootScope) { // $rootScope is implicitly injected
}) .run(['willBreak', function(willBreak) { // AngularJS will throw when this runs }]); var MyController = function($scope, greeter) {} MyController.$inject = ['$scope', 'greeter']; someModule.controller('MyController', MyController); npm install -g ng-annotate
manual bootstrapping angular.bootstrap(document, ['myApp']);
npm install angular-animate ngAnimate
ngAnimate support
API • CSS-animations • css class hooks • ng-enter •
ng-leave • JS-animations • module.animation() api
Animation JS api myModule.animation('.slide', [function() { return { enter: function(element,
doneFn) { jQuery(element).slideIn(1000, doneFn); } } }]); .slide.ng-enter { transition:0.5s linear all; transform:translateY(-100px); } .slide.ng-enter.ng-enter-active { transform:translateY(0); } <div class="slide"> Slide in and out </div>
$animateCss myModule.animation('.slide', ['$animateCss', function($animateCss) { return { enter: function(element) {
return $animateCss(element, { event: 'enter', structural: true, addClass: 'maroon-setting', from: { height: 0 }, to: { height: 200 } }); } } }]);
$http.get(‘/some/endpoint’) .then(res => { if (!!res.data) { this.someData = res.data;
} });
npm install angular-resource ngResource
let User = $resource('/user/:userId', { userId: ’@id’ }); let user
= User.get({ userId: 123 }, () => { user.abc = true; user.$save(); });
{ 'get': { method:’GET’ }, 'save': { method:’POST' }, 'query':
{ method:'GET', isArray:true}, 'remove': { method:’DELETE' }, 'delete': { method:’DELETE' } }; var app = angular.module('app', ['ngResource', 'ngRoute']); app.factory('Notes', ['$resource', function($resource) { return $resource('/notes/:id', null, { 'update': { method:'PUT' } }); }]); app.controller('NotesCtrl', ['$scope', '$routeParams', ‘Notes', function($scope, $routeParams, Notes) { var note = Notes.get({ id: $routeParams.id }); $id = note.id; }]);
XSS
npm install angular-sanitize ng-sanitize
https://plnkr.co/edit/hFzZqLfk7beFxYXlzOlJ
$sce Strict Contextual Escaping
–Johnny Appleseed “Type a quote here.”
little more • ng-cookies • ng-messages • ng-mock • ng-touch