- We are introducing HttpClient, a smaller, easier to use, and more powerful library for making HTTP Requests. Learn more about it from our docs
- New router life cycle events for Guards and Resolvers. Four new events: GuardsCheckStart, GuardsCheckEnd, ResolveStart, ResolveEnd join the existing set of life cycle event such as NavigationStart
- Conditionally disable animations via a new attribute, [@.disabled]
- Support for the emulated /deep/ CSS Selector (the Shadow-Piercing descendant combinator aka >>>) has been deprecated to match browser implementations and Chrome’s intent to remove. ::ng-deep has been added to provide a temporary workaround for developers currently using this feature.
Friday, July 14, 2017
Angular 4.3 Now Available
Monday, June 12, 2017
Angular 4.2 Now Available
- Angular Forms now includes validators for min and max attributes
- You can now bootstrap a component directly by passing an element reference to the bootstrap method of an ApplicationRef
- Improved i18n tooling including MissingTranslationStrategy and location notes in xliff2 files
- We've begun laying the foundation for testing AOT components, which will become possible in a future release
- New compiler flag alwaysCompileGeneratedCode is available opt-in, and will be turned on by default in the future
- Configure options and set input variables within animations
- Define reusable animations using animation()
- Query for inner elements within animations using query()
- Stagger multiple elements within an animation using stagger()
- Enable queried elements to trigger their own animations
- Orchestrate a full-blown animation when routes change
- Programmatically build/control an animation using AnimationBuilder
Wednesday, April 26, 2017
Angular 4.1.0 Now Available
- Version 4.1 adds full support for TypeScript 2.2 and 2.3. Developers previously reported good experiences with TypeScript 2.2 and 2.3, but Angular is now built with TypeScript 2.3. This does not affect our support for TypeScript 2.1 which shipped with 4.0.
- Angular is now compliant with TypeScript’s StrictNullChecks. This means that you can enable StrictNullChecks in your project, if desired.
Thursday, December 22, 2016
Angular Material Beta Release, New Flex-Layout library
![]() |
| material components with a custom theme and RTL text |
Also out in beta today, the new @angular/flex-layout package is a general-purpose flex-based layout library for use in any Angular application later than version 2.4. It provides a responsive engine and API to easily define how UI layouts should update as viewport sizes change with orientation across different display devices. The HTML API makes it trivial to quickly arrange (and auto-resize) web page component layouts. In Angular 1.x, layout tools were included as part of Angular Material. With flex-layout, we have made layout a standalone library, decoupled from the UI components. Learn more about the flex-layout beta here.
Whether you're building a new app, or upgrading from a legacy Angular 1.x app that needs Layout and Angular Material APIs, these components will help you to quickly build a beautiful and performant UI consistent with Google's Material Design spec.
What does beta mean?
We've built all of the core UI components that most applications will need. Start using these libraries, and give us feedback on GitHub.We don’t plan to make any large API changes before exiting beta, however we’ll make changes based on feedback we receive during the beta process.
What's still in the works?
For Angular Material, developers can expect other advanced components (e.g. data-table, date-picker), and typography support. Both libraries will see ongoing bug fixes and feature improvements.For users on Angular Material 1.x, a new release is expected in early 2017 with bug fixes and security improvements.
Tuesday, December 20, 2016
Angular 2.4.0 Now Available
- This release updates our dependencies to the recently announced RxJS 5 stable
Wednesday, October 12, 2016
Angular 2.1.0 Now Available
What's new?
- The Router now supports preloading of lazy loaded modules, which gives users the best of both worlds; applications bootstrap quickly, and users don't need to wait for a round trip to the server to access lazy loaded content. Watch Victor Savkin present these capabilities at Angular Connect.
- Animation in Angular has been enhanced by adding :enter and :leave aliases for the common void => * and * => void state changes. The transition API documentation has been updated with these aliases.
This release is intentionally small. It matches what you should expect to see going forward. We are working hard to provide smaller more frequent releases with a smooth upgrade path.
Wednesday, September 14, 2016
Angular, version 2: proprioception-reinforcement
Today, at a special meetup at Google HQ, we announced the final release version of Angular 2, the full-platform successor to Angular 1.
What’s next?
- Bug fixes and non-breaking features for APIs marked as stable
- More guides and live examples specific to your use cases
- More work on animations
- Angular Material 2
- Moving WebWorkers out of experimental
- More features and more languages for Angular Universal
- Even more speed and payload size improvements
Semantic Versioning
- the MAJOR version gets incremented when incompatible API changes are made to stable APIs,
- the MINOR version gets incremented when backwards-compatible functionality are added,
- the PATCH version gets incremented when backwards-compatible bug are fixed.
Contributors
With gratitude and appreciation, and anticipation to see what you'll build next, welcome to the next stage of Angular.
Tuesday, September 13, 2016
RC7 Now Available
What's fixed?
- Lazy loading with webpack bundled projects
- RxJS issues for developers using ES5
- IDE Docs Integration - IDEs such as VS Code should now pull in the latest Angular Decorator documentation as reference
Thursday, September 1, 2016
Angular 2 RC6
Angular 2.0.0-rc.6 is now available on npm! New in this release candidate:
- Faster Angular 2 through Ahead of Time (AoT) compilation improvements and ES6 2015 modules.
- More features in Forms: resetForm, disabled state, validator directive binding, group rebinding, and other improvements.
- Internationalization (i18n) support. Add an i18n attribute, then use the ng-xi18n tool to extract strings to a standard XLIFF file. See this example to try it out.
For full details, see the CHANGELOG.md.
Faster Angular 2
Ahead of Time (AoT) Compilation
We’re really excited about the speed and bundle size improvements developers get when compiling applications ahead of time. To take advantage of AoT compilation, you’ll need to install the @angular/compiler-cli and make a small addition to your tsconfig.json file."angularCompilerOptions": {
"genDir": "./ngfactory"
}
Once you make this change, you can run the Angular compiler from the command-line, by typing ngc.
Then update your bootstrap from
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
platformBrowserDynamic().bootstrapModule(MyAppModule)
toimport {platformBrowser} from '@angular/platform-browser';
platformBrowser().bootstrapModuleFactory(MyAppModuleNgFactory)
These two changes will get you started with using ngc and AoT, but we have more documentation and tools coming. Developers looking to try AoT may run into errors the first time they try - don’t panic! One of the benefits of the introduction of NgModules is that your code does not have to change based on whether you’re running in AoT or just in time (JiT) mode, so you can continue to be productive while we continue to improve these tools and work with third-party library authors to make sure code is AoT compilable.
ES2015 modules
In RC6, we’ve changed the output structure of our NPM packages to better enable tools like Rollup and Webpack2 to optimize your applications during bundling.Each @angular/* package now contains:
- “ESM” code - this is ES5 code with ES2015 style import/exports. This works great with Rollup and Webpack2 and allows more efficient tree shaking. This code replaces the commonJS source in the root of each directory.
- A UMD bundle in the bundles/ directory of each package.
- A new field in the package.json - “module” - that allows Rollup and Webpack to opt into using the ESM code.
If you’ve previously deep imported from @angular packages (e.g. @angular/core/src/foo/bar), note that this no longer works in RC6. Always import from the root of a package (eg, @angular/core). Deep imports are private APIs, and likely to change.
Thursday, August 18, 2016
Angular Material - 1.1 and 2.x
I'm happy to announce the release of Angular Material 1.1, now available for use with Angular 1.x applications.
We've also added some new faces to the team. Welcome to Erin, Paul, and Kristiyan as new core contributors. As lead for one of the internal Google projects using Angular, Erin and her team contributed to Angular Material 1.x with architecture designs and implementations for the new <md-nav-bar> and $mdPanel components. Paul and Kristiyan are developers from the open source community who joined the core team just before 1.0, at the end of 2015.
Why should you update from Angular Material 1.0 to 1.1?
With more than 700 commits, the updates in version 1.1 directly improve the responsiveness and stability of Angular Material components. In particular, this release improves the behavior of Tooltip, Progress Indicators, Menu, Select, Chips, and AutoComplete components.You'll also find new components nav-bar, colors, theme picker, dense layouts for lists, vertical sliders, select-header, and more.
Finally, we've added community-requested features for global-level control over appearance, including disabling themes, layouts, and/or ripples. For full details, see the changelog.
We anticipate that most apps will find it easy to update to 1.1. As part of upgrading, you'll want to check the CSS, colors, and spacings on 1.1, especially if you have applied customizations.
What about Angular 2.x?
Angular Material 2 continues in alpha preview. Since we announced our first alpha release, we've grown from six to eighteen components, and have been using Angular Material 2 as one of the validation tests for each Angular 2 release candidate.You can see the published components on npm and follow our development progress on GitHub.
Thursday, June 30, 2016
RC4 Now Available
What's new?
- We've cleaned up our exported APIs so that they are simpler and more streamlined, and removed things that were never intended to be public. We have also added stability tag filtering so that you can easily tell whether something is part of the stable released API or experimental.
- Consolidation and improvements to testing. For example, we no longer do special wrapping around Jasmine's it, describe, or other functions. This means we are no longer coupled to Jasmine, you can use another testing framework such as Mocha.
- We've added more Resources to help you learn and use Angular.
Tuesday, June 21, 2016
RC3 Now Available
What's new?
- This release includes a fix for a major performance regression in RC2
- The @angular/router project has been merged into our main repository ( It will retain its own version numbers and release cycle )
- The Router documentation is now available.
- Content Security - Angular Content Security features are feature-complete and documented
- The new Forms cookbook is available
Thursday, June 9, 2016
Improvements Coming for Routing in Angular
A little more than a month ago, we introduced a new router at ng-conf. We hoped this would finally resolve the outstanding routing issues in our first design.
It turns out, routing is hard.
We’re grateful to have heard from many folks at ng-conf about flaws in this new design, so we are announcing version 3.0.0-alpha.3 of @angular/router and are deprecating version 2. You should begin using this router right away.
This router was built together with the @ngrx team. This router breaks compatibility with version 2 of @angular/router, but we believe it is a worthwhile successor to version 2 as well as to ngrx’s router.
Version 3.0
While the new version 3.0 of the router needs community validation and field-testing, we intend for this to become the primary router used by Angular applications. This router takes cues from both @ngrx/router router and UI-Router (a huge thank you to Chris for his work, he’s been working to make his ready for Angular 2).
What do I need to know?
- Route configuration is now specified independently of components
- Most [RouterLink] directives you have today will keep working
- The version 3 router is ready to use, and more capabilities are coming
- Read about the new router today in Victor Savkin’s Full Writeup on Routing
- Official Documentation will be launched in the next two weeks
Get started by checking out this plunker, stay tuned for more about this Router, and the upcoming Angular 2 RC2.
Some backstory for the curious
During the alpha and beta periods of Angular 2, we developed a router (@angular/router-deprecated) that worked fine for many use cases, but had some fundamental problems. Deep linking into lazy loaded sections couldn’t work, our lifecycle hooks used for things like authentication were not compatible with DI, and it was impossible to inspect the whole router tree from a particular routable component.
To resolve these fundamental incompatibilities, in April we began work on a second version of the router (@angular/router 2.0) and rapidly released it as an incremental improvement at the ng-conf conference. Thanks to your input, we know that this new approach did not completely resolve the issues that set us down this path, so we went back to the drawing board and brought in more external collaborators. This path lead us to the latest version of the router we are announcing today.
Friday, February 5, 2016
Angular 1.5.0 - ennoblement-facilitation has been released!
The primary theme for this release was to improve the upgrade path to Angular 2.
In this release we have added features that will enable developers to write Angular 1 applications that are closer to the way that applications are structured in Angular 2.
New Features
The big feature changes to Angular 1 in this release are mostly focused around supporting Angular applications that are built from Components. But there are a number of other features that will improve your development experience.Component-based applications
Defining component directives
While creating components in Angular has been the primary way of structuring applications for a long time, we now made it possible for you to easily define a component directive with themodule.component() helper method. For example a simple component only needs to provide a template, some bindings and a controller. For the remaining directive options we set sensible defaults.
myModule.component('myComponent', {
template: '<h1>Hello {{ $ctrl.getFullName() }}</h1>',
bindings: { firstName: '<', lastName: '<' },
controller: function() {
this.getFullName = function() {
return this.firstName + ' ' + this.lastName;
};
}
});
<my-component first-name="'Alan'" last-name="'Rickman'"></my-component>Read the new component guide to find out more about this.
Lifecycle hooks
If your directive/component controller has a method called$onInit() the compiler will now call it after the component has been initialized and all its bindings have been set up. This provides a clear place to put the initialization code for your components and is similar to the ngOnInit() lifecycle hook of Angular 2.Binding to required directives
As well as the string and array forms, you can now specify an object for therequire property of directives and components. If used with bindToController, the compiler will also automatically bind these required directive controllers to your controller.These bindings (including those of sibling directives) are guaranteed to be in place by the time the
$onInit() hook is called.Multi-slot transclusion
You can now specify that different parts of the transcluded content is rendered at different slots in the template. See the 1.5.0-beta.2 release announcement for a detailed explanation of this feature.Default transclusion content
ngTransclude no longer overwrites its contents if there is no content to fill it. This means that you can provide default content to be shown if the user of your directive has not provided any content to be transcluded.One-way bindings
You can now define a directive/component binding using the'<' character to indicate that the binding is one-way. In this case the compiler will only set up a watch on the outer expression and not on the internal property. This means that changes to the value of a binding inside the component will not be propagated to the outside. See the $compile API docs for more information.Improved support for ES6 classes
We now support instantiation of native ES6 classes in the$injector and as a controller. Due to variable browser support this is a volatile feature, so be careful to test on your target browsers before going to production.ngAnimateSwap Directive
We have introduced the newngAnimateSwap directive, which allows you to animate a collection of DOM changes together as a single container swap. See the 1.5.0-beta.2 release announcement for a detailed explanation of this feature.ngResource
We now have proper support for cancellable actions on resources, which means a$cancelRequest() method will be available on the return value of the request method.ngRoute
Any promises resolved as part of a route'sresolve property are now added to the scope as a $resolve property, which saves you having to inject them into the route controller.Other Improvements
There are loads of other improvements, which you can find in the Angular changelog. Here are a few highlights:- You can now access the locals object that was passed to a call to
$parsefrom inside the parsed expression, via a$localsvariable. - You can provide
$httpconfiguration options of the$templateRequestservice. - You can create your own custom XHR objects for the
$httpvia the$xhrFactoryservice. ngModelnow providesng-emptyandng-not-emptyCSS classes.- The ngAria module is now more precise with handling of ARIA attributes and tabindex for custom controls.
- Some new helpers are available on
ngMockto ease testing: $componentController,$httpBackend.expectRoute()/whenRoute(),$animate.closeAndFlush().
Security Improvements
There have been a number of people who have contributed to the project over the last few releases by analyzing and identifying security issues in the Angular code base, which we have then fixed. We really appreciate the work that these people do. In particular we would like to thank Mario Heiderich, Gareth Heyes and Jann Horn and the security team at Google.Migrating from 1.4 to 1.5
Angular 1.5 is the fastest, most feature complete and reliable version of Angular to date. We highly recommend upgrading your applications to use it.While we tried to keep the number of breaking changes in the core to a minimum a few were unavoidable and will generally only affect very rare corner cases.
You can read about how to migrate and what breaking changes might affect your application in the migration guide.
If you find any issues with Angular while you are migrating, please report them at Github.
Thanks
Once again, Angular could not be what it is without the constant support of the literally millions of developers across the world who are using and contributing to the project, either through submitting issues and pull requests, running conferences and workshops, writing tutorials and sharing their real world experiences.From everyone at the Angular team, we hope you enjoy developing with this latest version as much as we have enjoyed building it.
Tuesday, December 15, 2015
Angular 2 Beta
What does 'beta' mean?
Beta means we're now confident that most developers can be successful building large applications using Angular 2.Through developer preview and alpha we've worked closely with several large projects here at Google including AdWords, GreenTea (Google's internal CRM system), and Google Fiber. In fact, just a few weeks ago we saw Google Fiber launch on their new Angular 2 code base.
Externally, we've worked closely with several other teams integrating with Angular 2 including Ionic Framework on Ionic 2, Telerik on NativeScript, Rangle.io on Batarangle, and many others.
We've incorporated the majority of feedback from these teams that would create breaking changes. Given this, we're looking forward to other teams developing in earnest and telling us how we can help.
Getting Started
Get going now with the updated and expanded Quickstart and Tutorial on angular.io. From there, you can check out several developer guides and a handy cheatsheet covering the main features in Angular 2.While the many in-progress Angular 2 books and courses will likely take a few weeks to catch up to the latest changes, we can recommend taking a look at the clear explanations and examples on the thoughtram blog and this in depth primer on Angular 2.
Upgrading from Angular 1
While you can upgrade apps in a "big bang" approach where you halt production until everything is rewritten, we're supporting two paths for where teams want to upgrade their Angular 1 apps to Angular 2.
ngUpgrade
We know many of you made large investments in Angular 1 and have created some awesome apps. We created ngUpgrade for all of you to make it possible to leverage your existing apps and move forward with Angular 2.ngForward
Some teams, with apps that are more sensitive to download size, will want to avoid having both Angular 1 and Angular 2 libraries running in their app simultaneously. For this, we have ngForward which lets you write Angular 1 applications in the syntax of Angular 2. This lets your team get used Angular 2 conventions and styles in your apps today and shorten the distance to doing the full upgrade to Angular 2 when you're ready.Providing Feedback
As always, please submit issues via GitHub, questions on Stack Overflow, and join the live conversation on Gitter.What comes next?
We're already hard at work on the set of improvements to move Angular 2 to its full and final release. While we will make many small improvements, the big ones for final are:- Reducing Angular 2's payload size.
- Making the Angular CLI usable end to end throughout the development process.
- Creating a more developer-friendly route definition and link API for the Component Router.
- Support for animations.
- I18n and L10n support.
And there are even more cool things to come -- some we've already started on including:
- More documentation, particularly around ES5/ES6 usage.
- Even better startup and runtime performance
- An architectural style guide
- Unit and end-to-end testing improvements
- More support for mobile web and installable mobile apps
- Material Design components for Angular 2
- A tools platform for deep IDE support
- Better support for ES6 and Babel
Thanks, and we're looking forward to seeing the apps you build appear on madewithangular.com!
Wednesday, May 27, 2015
Angular 1.4.0 - jaracimrman-existence
New Features
Animation
$http
Internationalization
Chirayu worked hard on improving i18n support for Angular apps. The first piece of this work was to provide a new ngMessageFormat module that supports the ICU MessageFormat interpolation syntax.
Compiler related
Cookies
- $cookies:
Form Related
jQuery related
Accessibility
Filters
- limitTo filter:
- filter filter:
Testing
- ngMock:
- Travis:
- Benchmarks:
Miscellaneous
- angular.merge:
- angular.Module:
- $anchorScroll:
- ngClass:
- $timeout:
- $resource:
- Scope:
- CommonJS:
- The new optional CommonJS support makes using Angular modules in environments like npm and browserify easier.
Performance Improvements
- $parse:
- $compile:
- ngOptions:
