SlideShare a Scribd company logo
ANGULARJS
VERSION 1.3 - SUPERLUMINAL-NUDGE
Agenda
• What’s new
• Highlight Features
• Migrating to version 1.3
• Beyond version 1.3
What’s New in Version 1.3.*
• Performance
• 4.3 times faster DOM manipulation with 73% less garbage
• 3.5 times faster digest with 87% less garbage
• Production Mode:
$compileProvider.debugInfoEnabled(false)
• $applyAsync
• Schedule the invokation of $apply to occur at a later time.
• queue up multiple expressions which need to be evaluated in the same
digest.
• One time binding.
What’s New in Version 1.3.*
• ~1000 Documentation improvements
• >400 Bug fixes
• npm packages
• ~400 contributors
• x4 Faster
• And (Wait for it…)
What’s New in Version 1.3.*
• IE8 Support discontinued
HIGHLIGHT FEATURES
• Production Mode
• By default AngularJS attaches information about scopes to
DOM nodes, and adds CSS classes to data-bound elements.
• disable this in production for a significant performance
boost with:
myApp.config(['$compileProvider', function ($compileProvider) {
$compileProvider.debugInfoEnabled(false);
}]);
//angular.reloadWithDebugInfo();
HIGHLIGHT FEATURES
• Apply Async
• Schedule the invokation of $apply to occur at a later time.
• Sets a timeout of ~10 milliseconds and then invokes $apply.
• Used by calling: scope.$applyAsync([exp])
HIGHLIGHT FEATURES
• Http Apply Async
• When using the Http service, each request that resolves triggers a
digest Cycle
• Http Service can be configured to combine processing of multiple
http responses by using the $applyAsync. Configured with:
myApp.config(['$httpProvider', function ($httpProvider) {
$httpProvider.useApplyAsync(true);
}]);
HIGHLIGHT FEATURES
• One time binding
• An expression that starts with :: is considered a one-time
expression
• Interpolation:
• Lists:
<p>Hello my name is:{{::name}}</p>
<ul class="list-group">
<li ng-repeat="user in ::users" class="list-group-
item">{{user.name}}</li>
</ul>
HIGHLIGHT FEATURES
• Forms
• ngMessages:
<div ng-messages="regform.fname.$error"
ng-if="regform.fname.$invalid &&(regform.$submitted || regform.fname.$touched)"
class="alert alert-danger" >
<div ng-message="required" >First name is required</div>
<div ng-message="minlength" >First name must be at least 4 characters.<div>
</div>
HIGHLIGHT FEATURES
• Forms
• ngMessages
• Use ngMessagesMultiple to display all messages.
• Use ngMessagesInclude to load messages from a
template file and reuse them across the form
• template messages will be overridden by inline messages.
HIGHLIGHT FEATURES
• Forms
• ngModelController.$validators
• Expected to return boolean value
• can be use instead of $parsers and $formatters.
• ngModelController.$asyncValidators
• Can be used to implement custom async validation
• Expected to return a promise.
HIGHLIGHT FEATURES
• Forms
• ngModelOptions
• Allows tuning how model updates are done.
• Specify a custom list of events that will trigger a model
update
• Set a debouncing delay so that the actual update only
takes place when a timer expires
HIGHLIGHT FEATURES
• ngAria
• ARIA - Accessible Rich Internet Applications
• Enables common ARIA attributes that convey state or
semantic information for assistive technologies.
• Currently supports ngModel, ngShow, ngHide,
ngDisabled, ngClick, ngDblclick and ngMessages
angular.module('samplesApp', [‘ngAria'])
MORE FEATURES…
• strictDI
• Throws errors and debug info when trying invoke functions
which do not use explicit function annotation
• $scope.$watchGroup
• Monitor an array of expressions for change.
<body ng-app="samplesApp" ng-strict-di>
scope.$watchGroup(['element1','element2'],
function(){/* your code here */}
);
MORE FEATURES…
• SVG & MathML Support
• $compile will allow SVG and MathML templates when using
templateNamespace property inside directives.
MIGRATION
https://docs.angularjs.org/guide/
migration
17
1.2 1.3
EXPRESSIONS
• You can no longer invoke .bind, .call, .apply inside angular expressions
• values 'f', '0', 'false', 'no', 'n', '[]' are no longer treated as falsy,
Only JavaScript falsy values are now treated as falsy by the expression
parser.
18
<div>{{user.sendInfo.call({}, true)}}</div>
$COMPILE
19
• The isolated scope of a component directive no longer
leaks into the template that contains the instance of the
directive.
1.2 :
1.3 :
<test-directive directive-scope=“controllerScope"
ng-hide=“directiveScope” ></test-directive>
<test-directive directive-scope=“controllerScope"
ng-hide="controllerScope" ></test-directive>
source: http://plnkr.co/edit/giVsWj1HDjlVN8lEJaHR?p=preview
$COMPILE
20
• Attributes.$observe no longer returns the observer
function, but a deregistration function instead
link: function(scope, elm, attr) {
var observer = attr.$observe('someAttr', function(value)
{
console.log(value);
});
}
link: function(scope, elm, attr) {
var observer = function(value) {
console.log(value);
};
attr.$observe('someAttr', observer);
}
1.2 1.3
FILTERS
21
• Simple value Filters will no longer trigger on every $digest but
only when their assigned value changes.
• This is a breaking change for filters that depends on an external
value.
• To preserve compatibility use:
.filter(‘decorate', ['decoration', function(decoration) {
function decorateFilter(input) {
return decoration.symbol + input + decoration.symbol;
}
decorateFilter.$stateful = true;
return decorateFilter;
}])
FORMS
22
• ngModelController.$cancelUpdate() - is renamed to
$rollbackViewValue()
• Input types date, time, datetime-local, month, week now
always require a Date object as model
BEYOND VERSION
1.3
http://angularjs.blogspot.co.il/20
14/12/planning-angular-14.html
23
VERSION 1.4
• Scheduled For Spring 2015
• 2 main new features:
• New Router
• Convention Based
• nested and multiple routers
• mutliple ng-view (ng-viewport)
• i18n & L10N
24
THANK YOU
25

More Related Content

PDF
Wordpress plugin development tips
PDF
Lessons Learnt in 2009
KEY
DSLs Internas e Ruby
PDF
Being a jsp
PDF
Ch5 beeing an application
PPTX
Caching & validating
PDF
4η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
PPTX
Php Training Workshop by Vtips
Wordpress plugin development tips
Lessons Learnt in 2009
DSLs Internas e Ruby
Being a jsp
Ch5 beeing an application
Caching & validating
4η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
Php Training Workshop by Vtips

What's hot (20)

PPTX
Wt unit 4
PPTX
Wt unit 3
PPTX
Compress and decompress
PDF
OpenERP and Perl
PDF
Workshop 6: Designer tools
PPTX
Integrate with database by groovy
PPTX
Request dispacther interface ppt
PPTX
Module design pattern i.e. express js
PDF
Ch. 7 beeing a jsp
PDF
Ch. 9 jsp standard tag library
PPT
MySQLi - An Improved Extension of MySQL
PPT
SQL WORKSHOP::Lecture 6
PDF
Ch. 8 script free pages
PPT
Multi Tenancy With Python and Django
PDF
Inside Bokete: Web Application with Mojolicious and others
PDF
Two scoops of django 1.6 - Ch7, Ch8
PDF
The Naked Bundle - Tryout
PDF
Workshop 8: Templating: Handlebars, DustJS
PDF
Php summary
Wt unit 4
Wt unit 3
Compress and decompress
OpenERP and Perl
Workshop 6: Designer tools
Integrate with database by groovy
Request dispacther interface ppt
Module design pattern i.e. express js
Ch. 7 beeing a jsp
Ch. 9 jsp standard tag library
MySQLi - An Improved Extension of MySQL
SQL WORKSHOP::Lecture 6
Ch. 8 script free pages
Multi Tenancy With Python and Django
Inside Bokete: Web Application with Mojolicious and others
Two scoops of django 1.6 - Ch7, Ch8
The Naked Bundle - Tryout
Workshop 8: Templating: Handlebars, DustJS
Php summary
Ad

Viewers also liked (11)

PPT
1.3 y 1.4 subject and predicate
PDF
Angular 1.x reloaded: improve your app now! and get ready for 2.0
PPTX
Componentes en angularjs 1.5
PPTX
さわってみようReact.js、AngularJS(1系、2系)
PPTX
Code migration from Angular 1.x to Angular 2.0
PDF
第三回ありえる社内勉強会 「いわががのLombok」
PPTX
Comment réussir son projet en Angular 1.5 ?
PPTX
Angular 2 Migration - JHipster Meetup 6
PPTX
Migrating an application from Angular 1 to Angular 2
PDF
AngularJS 2, version 1 and ReactJS
ODP
Introduction to Angular 2
1.3 y 1.4 subject and predicate
Angular 1.x reloaded: improve your app now! and get ready for 2.0
Componentes en angularjs 1.5
さわってみようReact.js、AngularJS(1系、2系)
Code migration from Angular 1.x to Angular 2.0
第三回ありえる社内勉強会 「いわががのLombok」
Comment réussir son projet en Angular 1.5 ?
Angular 2 Migration - JHipster Meetup 6
Migrating an application from Angular 1 to Angular 2
AngularJS 2, version 1 and ReactJS
Introduction to Angular 2
Ad

Similar to AngularJS Version 1.3 (20)

PPTX
Santa Barbara AngularJS intro to 1.3
PDF
AngularJS: Overview & Key Features
PDF
Hello, AngularJS 1.3
PPTX
Optimizing a large angular application (ng conf)
PPTX
AngularJS Best Practices
PPTX
Angular js 1.0-fundamentals
PDF
AngularJS in practice
PPTX
ME vs WEB - AngularJS Fundamentals
PPTX
Angular Presentation
PPTX
Angular1x and Angular 2 for Beginners
ODP
AngularJs Crash Course
PPTX
AngularJS.part1
PPTX
Single Page Applications Workshop Part II: Single Page Applications using Ang...
PPTX
AngularJS Introduction (Talk given on Aug 5 2013)
PPT
introduction to Angularjs basics
PDF
AngularJS Workshop
PPTX
Angular training - Day 3 - custom directives, $http, $resource, setup with ye...
PPTX
Introduction to AngularJs
PPTX
Angular workshop - Full Development Guide
Santa Barbara AngularJS intro to 1.3
AngularJS: Overview & Key Features
Hello, AngularJS 1.3
Optimizing a large angular application (ng conf)
AngularJS Best Practices
Angular js 1.0-fundamentals
AngularJS in practice
ME vs WEB - AngularJS Fundamentals
Angular Presentation
Angular1x and Angular 2 for Beginners
AngularJs Crash Course
AngularJS.part1
Single Page Applications Workshop Part II: Single Page Applications using Ang...
AngularJS Introduction (Talk given on Aug 5 2013)
introduction to Angularjs basics
AngularJS Workshop
Angular training - Day 3 - custom directives, $http, $resource, setup with ye...
Introduction to AngularJs
Angular workshop - Full Development Guide

Recently uploaded (20)

PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
medical staffing services at VALiNTRY
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Nekopoi APK 2025 free lastest update
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PPTX
L1 - Introduction to python Backend.pptx
PPT
Introduction Database Management System for Course Database
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Introduction to Artificial Intelligence
PDF
Digital Strategies for Manufacturing Companies
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
ManageIQ - Sprint 268 Review - Slide Deck
How to Migrate SBCGlobal Email to Yahoo Easily
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Odoo POS Development Services by CandidRoot Solutions
CHAPTER 2 - PM Management and IT Context
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
medical staffing services at VALiNTRY
VVF-Customer-Presentation2025-Ver1.9.pptx
Odoo Companies in India – Driving Business Transformation.pdf
Nekopoi APK 2025 free lastest update
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
L1 - Introduction to python Backend.pptx
Introduction Database Management System for Course Database
2025 Textile ERP Trends: SAP, Odoo & Oracle
Design an Analysis of Algorithms II-SECS-1021-03
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Introduction to Artificial Intelligence
Digital Strategies for Manufacturing Companies
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool

AngularJS Version 1.3

  • 1. ANGULARJS VERSION 1.3 - SUPERLUMINAL-NUDGE
  • 2. Agenda • What’s new • Highlight Features • Migrating to version 1.3 • Beyond version 1.3
  • 3. What’s New in Version 1.3.* • Performance • 4.3 times faster DOM manipulation with 73% less garbage • 3.5 times faster digest with 87% less garbage • Production Mode: $compileProvider.debugInfoEnabled(false) • $applyAsync • Schedule the invokation of $apply to occur at a later time. • queue up multiple expressions which need to be evaluated in the same digest. • One time binding.
  • 4. What’s New in Version 1.3.* • ~1000 Documentation improvements • >400 Bug fixes • npm packages • ~400 contributors • x4 Faster • And (Wait for it…)
  • 5. What’s New in Version 1.3.* • IE8 Support discontinued
  • 6. HIGHLIGHT FEATURES • Production Mode • By default AngularJS attaches information about scopes to DOM nodes, and adds CSS classes to data-bound elements. • disable this in production for a significant performance boost with: myApp.config(['$compileProvider', function ($compileProvider) { $compileProvider.debugInfoEnabled(false); }]); //angular.reloadWithDebugInfo();
  • 7. HIGHLIGHT FEATURES • Apply Async • Schedule the invokation of $apply to occur at a later time. • Sets a timeout of ~10 milliseconds and then invokes $apply. • Used by calling: scope.$applyAsync([exp])
  • 8. HIGHLIGHT FEATURES • Http Apply Async • When using the Http service, each request that resolves triggers a digest Cycle • Http Service can be configured to combine processing of multiple http responses by using the $applyAsync. Configured with: myApp.config(['$httpProvider', function ($httpProvider) { $httpProvider.useApplyAsync(true); }]);
  • 9. HIGHLIGHT FEATURES • One time binding • An expression that starts with :: is considered a one-time expression • Interpolation: • Lists: <p>Hello my name is:{{::name}}</p> <ul class="list-group"> <li ng-repeat="user in ::users" class="list-group- item">{{user.name}}</li> </ul>
  • 10. HIGHLIGHT FEATURES • Forms • ngMessages: <div ng-messages="regform.fname.$error" ng-if="regform.fname.$invalid &&(regform.$submitted || regform.fname.$touched)" class="alert alert-danger" > <div ng-message="required" >First name is required</div> <div ng-message="minlength" >First name must be at least 4 characters.<div> </div>
  • 11. HIGHLIGHT FEATURES • Forms • ngMessages • Use ngMessagesMultiple to display all messages. • Use ngMessagesInclude to load messages from a template file and reuse them across the form • template messages will be overridden by inline messages.
  • 12. HIGHLIGHT FEATURES • Forms • ngModelController.$validators • Expected to return boolean value • can be use instead of $parsers and $formatters. • ngModelController.$asyncValidators • Can be used to implement custom async validation • Expected to return a promise.
  • 13. HIGHLIGHT FEATURES • Forms • ngModelOptions • Allows tuning how model updates are done. • Specify a custom list of events that will trigger a model update • Set a debouncing delay so that the actual update only takes place when a timer expires
  • 14. HIGHLIGHT FEATURES • ngAria • ARIA - Accessible Rich Internet Applications • Enables common ARIA attributes that convey state or semantic information for assistive technologies. • Currently supports ngModel, ngShow, ngHide, ngDisabled, ngClick, ngDblclick and ngMessages angular.module('samplesApp', [‘ngAria'])
  • 15. MORE FEATURES… • strictDI • Throws errors and debug info when trying invoke functions which do not use explicit function annotation • $scope.$watchGroup • Monitor an array of expressions for change. <body ng-app="samplesApp" ng-strict-di> scope.$watchGroup(['element1','element2'], function(){/* your code here */} );
  • 16. MORE FEATURES… • SVG & MathML Support • $compile will allow SVG and MathML templates when using templateNamespace property inside directives.
  • 18. EXPRESSIONS • You can no longer invoke .bind, .call, .apply inside angular expressions • values 'f', '0', 'false', 'no', 'n', '[]' are no longer treated as falsy, Only JavaScript falsy values are now treated as falsy by the expression parser. 18 <div>{{user.sendInfo.call({}, true)}}</div>
  • 19. $COMPILE 19 • The isolated scope of a component directive no longer leaks into the template that contains the instance of the directive. 1.2 : 1.3 : <test-directive directive-scope=“controllerScope" ng-hide=“directiveScope” ></test-directive> <test-directive directive-scope=“controllerScope" ng-hide="controllerScope" ></test-directive> source: http://plnkr.co/edit/giVsWj1HDjlVN8lEJaHR?p=preview
  • 20. $COMPILE 20 • Attributes.$observe no longer returns the observer function, but a deregistration function instead link: function(scope, elm, attr) { var observer = attr.$observe('someAttr', function(value) { console.log(value); }); } link: function(scope, elm, attr) { var observer = function(value) { console.log(value); }; attr.$observe('someAttr', observer); } 1.2 1.3
  • 21. FILTERS 21 • Simple value Filters will no longer trigger on every $digest but only when their assigned value changes. • This is a breaking change for filters that depends on an external value. • To preserve compatibility use: .filter(‘decorate', ['decoration', function(decoration) { function decorateFilter(input) { return decoration.symbol + input + decoration.symbol; } decorateFilter.$stateful = true; return decorateFilter; }])
  • 22. FORMS 22 • ngModelController.$cancelUpdate() - is renamed to $rollbackViewValue() • Input types date, time, datetime-local, month, week now always require a Date object as model
  • 24. VERSION 1.4 • Scheduled For Spring 2015 • 2 main new features: • New Router • Convention Based • nested and multiple routers • mutliple ng-view (ng-viewport) • i18n & L10N 24