- 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.
Tuesday, December 20, 2016
Angular 2.4.0 Now Available
- This release updates our dependencies to the recently announced RxJS 5 stable
Tuesday, December 13, 2016
Ok... let me explain: it's going to be Angular 4.0, or just Angular
Update: This blog was updated by the Angular team on 2017-01-26 to reflect the latest naming standards.
At the 8th and 9th of December 2016 was NG-BE, Belgium’s first Angular conference. Igor Minar (Angular lead dev) attended as the keynote speaker with some interesting announcements regarding Angular’s release schedule. Please read the entire post, there are a couple of important things.
Igor was extremely open and transparent about the announcement and even about the way of presenting it. He basically created the presentation openly the day before the conference:
I'll be conducting a major open source experiment at @ngbeconf tonight at 10pm downstairs in the main room. Come if you want to participate.— Igor Minar (@IgorMinar) December 8, 2016
So here it is:
Why Angular 4?? Why even Angular 3?? What is going on?
Angular uses SEMVER
Back in September when the new Angular was finally released, the Angular team also announced they will switch to Semantic Versioning (SEMVER).As the name already explains, Semantic Versioning is all about adding meaning to version numbers. This allows developers to not only reason about any upgrade we do, but we can even let tools such as NPM do it in a automatic and safe manner for us.
A semantic version consists of three numbers:
Whenever you fix a bug and release it, you increase the last number, if a new feature is added, you increase the second number and whenever you release a breaking change you increase the first number.
“A breaking change happens whenever you as a developer and consumer of a library, have to step in and adjust your code after a version upgrade.”So what does this mean for the Angular team? As with every evolving piece of software, breaking changes will occur at some point. For example, giving a compiler error for existing application bugs that went unnoticed with the previous compiler version, anything, that will break an existing application when upgrading Angular, requires the team to bump the major version number.
Just to be clear, as also Igor mentioned in his talk. Right now, even just upgrading Angular’s TypeScript dependency from v1.8 to v2.1 or v2.2 and compile Angular with it, would technically cause a breaking change. So they’re taking SEMVER very, very seriously.
Breaking changes don’t have to be painful!
People that have been following the Angular community for a while, definitely know what I’m talking about. We went from Angular 1 to Angular 2, and it was a total breaking change, with new APIs, new patterns. That was obvious: ultimately Angular 2 was a complete rewrite. (Even though there are upgrade options for you available)Changing from version 2 to version 4, 5, … won’t be like changing from Angular 1. It won’t be a complete rewrite, it will simply be a change in some core libraries that demand a major SEMVER version change. Also, there will be proper deprecation phases to allow developers to adjust their code.
Internally at Google, the Angular team uses a tool for handling automatic upgrades, even of breaking changes. This is still something that has to be planned in more detail, but the team is working hard on making this tool generally available, most probably in 2017 in time for version 5.
It’s just “Angular”
As you might have already guessed, the term “Angular 2” is also kind of deprecated once we get to version 4, 5 etc. That said, we should start naming it simply “Angular” without the version suffix.“It’s just #angular”Also, we should start avoiding GitHub/NPM libraries prefixed with ng2- or angular2-.
@toddmotto @manekinekko @jdfwarrior @schwarty but please don't call projects ng2- or angular2-, etc.— Igor Minar (@IgorMinar) December 10, 2016
Naming guidelines
Basically from now on, you should name versions 2.0.0 or later of Angular simply “Angular”. Try to avoid using the version number, unless it is really necessary to disambiguate.Three simple guidelines:
- Use “Angular” for versions 2.0.0 and later (e.g. “I’m an Angular developer”, “This is an Angular meetup”, “The Angular ecosystem is growing quickly”)
- Use "AngularJS" to describe versions 1.x or earlier
- Use the version number “Angular 4.0” "Angular 2.4" when needed to talk about a specific release (e.g. when talking about a newly introduced feature - “This is an introduction to feature X, introduced in Angular 4”, “I’m proposing this change for Angular 5”)
- Use full semver version when reporting a bug (e.g. “This issue is present as of Angular 2.3.1”)
“This article uses Angular v2.3.1.”That helps avoid confusion for your readers, especially when you are writing about specific APIs.
Why not version 3 then?
The core Angular libraries live in one single GitHub repository at github.com/angular/angular. All of them are versioned the same way, but distributed as different NPM packages:Due to this misalignment of the router package’s version, the team decided to go straight for Angular v4. In this way again, all the core packages are aligned which will be easier to maintain and help avoid confusion in the future.
Also it is important to understand how Angular is being used and integrated inside Google (Igor speaks about this here in his keynote). All Google applications use Angular version equal to the current GitHub’s master branch of the Angular repository. Whenever a new commit lands in master, it will be integrated into Google’s single, giant mono-repo, where also other products such as Maps, Adsense etc. live. As a consequence all of the projects using Angular internally at Google will run their extensive test suites against this new version. This makes the team very confident to cut a new release, since it will contain the exact combination of versions of Angular packages that have been already battle tested inside Google. Thus, having aligned versions totally makes sense and makes it easier to maintain them over time, which in turn helps the team be more productive in releasing new features.
Tentative release schedule
The fact that breaking changes will arrive, doesn’t mean they will arrive every other week. The Angular team committed to time based releases that occur in three cycles:- patch releases every week,
- 3 monthly minor release after each major release and
- a major release with easy-to-migrate-over breaking changes every 6 months.
After Angular 4.0.0, this will be the tentative schedule for further releases:
Video: See the announcement yourself
Conclusion
There are two main important messages here:- don’t worry about version numbers
- we do need to evolve Angular in order to avoid another Angular 1 to Angular 2 change, but we should do it together as a community in a transparent, predictable and incremental way.
Thursday, December 8, 2016
Angular 2.3.0 Now Available
- We're now releasing the first version of the Angular Language Service. This is a service that is designed to integrate with IDEs and provide error checking and type completion within Angular Templates. We've built this service independent of editor, but we will soon be releasing an initial set of bindings for VS Code.
- Developers can now take advantage of object inheritance for components. Share or simplify component functionality by inheriting from a parent component.
- The latest release of zone.js includes improved stack traces. You should see stack traces that are shorter and are zone-aware:
- 2.2.x Stack Trace:
Error.spec.js:53 Error: Inside at ZoneAwareError (zone.js:652) at insideRun (Error.spec.js:31) at ZoneDelegate.invoke (zone.js:216) at Zone.run (zone.js:100) at testFn (Error.spec.js:29) at ZoneDelegate.invoke (zone.js:216) at Zone.run (zone.js:100) at Object.eval (Error.spec.js:19) - 2.3.0 Stack Trace:
Error.spec.js:54 Error: Inside [InnerZone] at insideRun (Error.spec.js:31) [InnerZone] at Zone.run (zone.js:100) [<root> => InnerZone] at testFn (Error.spec.js:29) [<root>] at Zone.run (zone.js:100) [ProxyZone => <root>] at Object.eval (Error.spec.js:19) [ProxyZone]
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
Monday, July 11, 2016
Angular in China and beyond: Introducing angular.cn
The language barrier does not stop Angular getting all the love from Chinese developers. There is new blood joining our community everyday. Some of them are newcomers, some of them have been using Angular in isolation for a long time without the support from the community. There are more than 4000 active users in our two Angular QQ chat groups, which is nothing compared to the sheer size of the whole Angular community in China. We felt that we needed to do more to enhance the influence of the community so that it could reach and help more developers.
èŻèšçéçąćč¶æČĄæé»æĄäœäžćœçćŒćè 仏ćŻčAngularççæ 。æŻć€©éœææ°äșșć ć „æä»ŹèżäžȘ瀟ćș。ä»ä»ŹæçæŻććŠè 、æçæŻćšćč¶æČĄæç€ŸćșæŻæçæ ć”äžèȘćŠäșAngularćŸäč çäșș。ćšæä»Źäž€äžȘAngular QQ矀é,æ4000ćć€ć掻è·çæć,äœæŻä»ä»Źä»æ§èżèżæŻäžäžć šäžćœAngular瀟ćșç淚性æ°é。æä»Źèź€äžșæä»ŹéèŠć ćŒșAngular瀟ćșçćœ±ć,äœżćŸćźèœć€ćœ±ćć°ä»„ććžźć©æŽć€çćŒćè 。
We chose official document localisation as a starting point.
äžșæ€,æä»Źéæ©äș“çż»èŻćźæčææĄŁ”äœäžșçȘç ŽćŁ。
As a large open source project, Angular 2 is in continuous development and its documents will also be constantly updated. “Complete the localisation and leave it alone” obviously does not meet the requirement as a copy of an obsolete document could be misleading. We needed a new approach.
äœäžșäžäžȘ性ććŒæș代ç çéĄčçź,Angular 2ć€ćšäžæçćŒćäž,ćźçææĄŁäčć°äŒèą«äžæć°æŽæ°。æŸç¶,“äžæŹĄæ§çż»èŻćź,ç¶ććäčäžçźĄ”çæšĄćŒæŻæ æłæ»Ąè¶łéæ±ç,äžä»œèżæ¶çææĄŁææ¶ćçèłäŒèŻŻćŻŒèŻ»è 。æä»Źć æ€éèŠéçšäžç§æ°ç、èœć€äżææç»æŽæ°ççż»èŻæčćŒ。
The new approach we adopted is Git-based. We forked a copy of angular.io and appended the translations right next to each of the corresponding paragraphs. This way, our repository is structurally identical to angular.io. We can pull and merge any changes from angular.io easily and update our translations accordingly. Git has enabled our effective collaboration across time zones. We have created a script to hide the original text post compilation. It also allows our users to toggle the original text by simply clicking on the translated text, or by clicking the (Show English) button in the upper right corner. This is extremely handy for us and community contributors when it is time to review the work.
æä»Źćłćźæéçšçèżç§æ°çæčćŒæŻćșäșGitHubç。æä»ŹćŒäșäžäžȘangular.ioćșçćæŻ,ćč¶æèŻæçŽæ„èżœć ćšćæäčć,èżæ ·,æä»Źè”æșćșçæ¶æć°ćangular.ioçäżæäžèŽ。ćœćæćçćæŽæ¶,æä»Źć°±äŒćç°èżç§ćć,ćč¶ćŻä»„ćć©ć·„ć ·çžćŻč蜻æŸçèżèĄććč¶ćč¶ćæ¶æŽæ°èŻæ。Githubèżèź©æä»ŹćŻä»„ææć°ćźç°è·šæ¶ćșçćäœ、äčćžźć©ćè°æä»Źäž€äœèŻè çæŽæ°。ćĄ«èĄ„äșæ¶ćșć·źć«é æçæ æłćæ¶äș€æ”ççČçč。æèżäșæșæä»¶çŒèŻäčć,æä»Źćąć äșäžäžȘéąć€çjsæä»¶,ćźäŒæç §æ ŒćŒäžçè§çșŠ,ćšèżèĄæéŽæćæéèæ,èżèœéèżçčć»èŻææ„èź©ćæéæ°æŸç€șćșæ„。èżç§æčćŒćŻčäșèȘć·±æ ĄćŻčć瀟ćșçćäœè ć㩿 ĄćŻčèłć łéèŠ。
After over a month of hard working, our localised docs site finally caught up with angular.io.
ç»èżäžäžȘ〿çé«ćŒșćșŠçż»èŻ,æä»Źççż»èŻçšż(ćč¶ćźæäș珏äžéæ ĄćŻč)ç»äșè”¶äžäșćšangular.ioäžçćźæčææĄŁçæŽæ°èżćșŠ。
Without knowing anyone on the Angular team yet, we sent an email to Naomi in the evening, Beijing time. She was online early, California time, and replied right away. A few hours later, we were collaborating with the core Angular team and the project was officially under way . This is an interesting case of effective global collaboration. Ralph was in Beijing, Luke was in Shanghai, Rex was in London and Naomi was in San Francisco.
èœç¶æä»Źćč¶äžèź€èŻAngularäș§ćéšéšçäșș,äœæä»ŹèżæŻäșćäșŹæ¶éŽçæäžç»NaomićäșäžȘéźä»¶ćç„ć„čæä»Źçć·„äœç»æ。ć ć·èżæŻćœć°çæ©æš,NaomićŸćż«ć°±ç»æä»Źćć€äșçæ æŽæșąéźä»¶,ćč¶ææä»Źä»ç»ç»äșçšè·Ż。ć äžȘć°æ¶ć, æä»ŹćAngularäș§ćéšéšçæ žćżćąéçćäœć°±ćŒć§äș。èżæŻäžȘæè¶Łçćšć šçèćŽć èżèĄææćäœçæĄäŸ。æ±ȘćżæćšćäșŹ、çšè·Żćšäžæ”·、ć¶ćżæćšäŒŠæŠ,èNaomićšæ§éć±±。
We joined the Angular organisation on github,created the angular/angular-cn repository for our project, and were welcomed to Angular's doc authoring team on Slack so that we could speak to the authors directly regarding their articles and be informed of any future updates. This greatly increased the accuracy and timeliness of our translation. We were also able to contribute ideas to help the authors improve their articles.
äžä» ćŠæ€,Naomièżææä»Źć ć „äșgithubäžçAngularćŒćç»,ćč¶ćšç»äžç»æä»Źć»șç«äșäžäžȘäžéšçšäœçż»èŻçä»ćș。ć„čèżææä»Źć ć „äșææĄŁäœè çslackć°ç»,èź©æä»ŹćŻä»„äžAngularćŒćç»äșČćŻæ„è§Š,ćæ¶äșè§ŁææĄŁçćäœćæŽæčèźĄć。èżćžźć©æä»Źéżć äșćŸć€æ çšć,ćč¶èœçŽæ„è·äœè èźšèźșćŻčćæçè§Łäžéçć°æč,祟äżèŻæć祟æ èŻŻ。ćèżæ„,æä»ŹäčéèżèżäžȘæž é,ćŻčć€ć€ćææćșäșäżźæčæè§。
To ensure that developers in China would have consistent access from a locally-hosted official domain, Google China's Developer Relations team helped us to secure angular.cn and we launched the site. When we made our work known to our Chinese community, more than 10% subscribers instantly “liked” the news in Ralph’s personal WeChat channel. Many volunteers started to provide valuable feedback on our work, many of whom preferred to be kept anonymous. All they wanted was the feeling of being able to contribute to the community. Our work has also attracted many new Angular developers to the the community.
äžșäșćžźć©ćšäžćœçćŒćè 仏èœć€ä»ćșäșćœć çæćĄćšæčäŸżć°ćŸć°ç»äžćäžèŽæ§çè”æșäœżçš,è°·æćŒćææŻæšćčżéšçäžćœćąéćžźć©æä»Źè·ćŸäșangular.cnçćććč¶ććžäșèżäžȘçœç«。ćœæä»Źć瀟ćșéćäșæä»Źçć·„äœææ,10%仄äžçæć仏驏äžćšæ±ȘćżæçćŸźäżĄæććäžçčäșè”。ćŸć€ćżæżè ćŒć§ćæä»Źçć·„äœæäŸćéŠ,ä»ä»ŹäžçćŸć€äșșçèłéœäžæżæçœČć,ä»ä»Źæèżœæ±çćȘæŻäžș瀟ćșèŽĄçźćéçæè§èć·Č。æä»Źçć·„äœèżćžćŒäșćŸć€ćæŹćšAngularćŒćè 瀟ćșäčć€çćŒćè 仏æ„ć ć „æä»ŹèżäžȘ瀟ćș。
Although we expected a positive response from the community according to our past experience with Angular 1, we were still surprised with the overwhelming praises and positive feedback received. Bear in mind that some developers were skeptical about Angular 2’s brand new design approach initially. It looks like Angular 2 has eventually won their heart.
èœç¶æ©ć°±ä»Angular 1çç»éȘäžć°±ćŻč瀟ćșçæŁéąććæææćŸ ,äœæŻèżäžȘæ°ççœç«çććžä»„ćè·ćŸçććșä»ç¶è¶ ćșäșæä»Źçæłè±Ą。èŠç„é,æäșäșșćŻčAngular 2çć šæ°èźŸèźĄæŸç»æŻææçæćșŠç。çæ„,Angular 2çèżäșäŒćŒçčæ§èżæŻè”ąćŸäșä»ä»Źçćż。
Our work has received great acceptance and recognition in the community. It has helped many developer teams overcome the language barriers. Many teams have started or are preparing to adopt Angular 2 in their projects. There are also a huge amount of developers starting to learn and play with angular 2 in their open source projects. The Chinese Angular community has become more active than ever since the launch of angular.cn. More and more developers have become involved in the community by actively exchanging ideas and helping solve other people’s issues.
æä»ŹçćȘććć·„äœææè·ćŸäșćŒćè 瀟ćșçæ„ććèź€ćŻ,ćźćžźć©äșäžćœçćŒćè ä»Źć æäșèŻèšçéçą。ć·Čç»æäžć°éĄčçźćąéćŒć§ćšçčć€æäœżçšAngular 2ćŒćä»ä»ŹçéĄčçź,äčæć€§æčçćŒćè 仏ćšćŒć§ćŠäč æć°èŻćšä»ä»ŹçćŒæș代ç éĄčçźäžäœżçšAngular 2。èȘä»Angular.cnçœç«ććžäčć,äžćœçAngularćŒćè 瀟ćșććŸæŽć 掻è·,è¶æ„è¶ć€çćŒćè 仏ćäžć°æä»Źç瀟ćșäžæ„ç§ŻæèżèĄćäș«、äș€æ”、仄ćäșçžćžźć©è§ŁćłćŒćéźéą。
We have also organised a team of Angular experts to translate the new ng-book 2. We will retain the same quality standard and we aim to publish the book shortly after the official release of Angular 2. We hope this will help Angular 2 take off to a flying start in China!
æä»Źèżç»ç»äșäžäžȘAngularäžćź¶ćąéæ„ćć€çż»èŻćč¶ćșçng-book2。æä»Źć°ćæćæ ·çèŽšéæ ćć髿ç,äșćèœćšćźæčććžćäžäč ć°±èź©æŹäčŠéąäž,äžșAngularäžæç€Ÿćșæ„äžäžȘćŒéšçșą。
The workload for the localisation is not the lightest, however it has given us great sense of accomplishment and helped us build influence in our community. If you want to contribute and at the same time obtain recognition from the community, this is the opportunity you do not want to miss. If your local community is not yet strong, this could be the starting point to build a better and stronger one. Would you like to try replicating this effort for your language? The Angular team is looking for leads to bootstrap similar projects in other countries, and we would love to help you.
èœç¶çż»èŻçć·„äœçĄźćźçžćœçčé,äœć ¶æć°±æććœ±ććäčćæ ·éćĄ。ćŠæäœ æłä»ćșćȘććč¶ććŸæć±ç€Ÿćșçèź€ćŻ,èżć°æŻäžäžȘéŸćŸçæșäŒ。ćŠæäœ ç瀟ćșć°äžć±ćŒ±,èżäčæŻäžäžȘć»șèźŸćč¶ćć±ćźçç»ć„œæ¶æș。äœ æżæäžșAngularææŻææĄŁççż»èŻć·„äœæäŸäœ çèŽĄçźć? Angularäș§ćéšéšæŁćšćŻ»æŸæŽć€çćżæżè 仏æ„ćäžșć ¶ćźćœćź¶ćžćș类䌌ççż»èŻć·„äœ,æä»ŹćŸæçŒææŽć€çćżæżè 仏æ„ć ć „æä»Ź。
There is only one Angular community and that is the global Angular community. Let us work to build up our local communities and connect them together through the Angular team, to form an ever growing Angular community worldwide.
æŹèŽšäž,AngularćȘæäžäžȘ瀟ćș,éŁć°±æŻć šç瀟ćș。èź©æä»Źć€§ćź¶äžè”·ćȘćććäœ,ć»șèźŸć„œæä»ŹäžćœçAngular瀟ćș,ćč¶éèżè°·æAngularäș§ćéšéšççșœćžŠ,èź©ćźæäžșć šçäžæćć±ćŁźć€§çAngular瀟ćșçäžéšć。
One flower does not bring the spring, one tree does not make a forest. Only a prosperous community could make a technology succeed. The work we have done has not only brought us a great sense of achievement, more importantly it has helped form the building blocks of a stronger community. In this day and age, only a strong community can prevent a technology from becoming obsolete quickly. Only a strong community can help us get support from each other whenever we need. Only a strong community can feed the ever growing job market, which is crucial for business success. More importantly, in the process of building up our community, we will meet countless good friends - maybe, we are already friends, we are just waiting to discover each other.
äžè±äžææ„,çŹæšäžææ。ćȘæçčèŁç瀟ćșæèœèź©äžéĄčææŻćæŹć 性。æä»Źæćçèżäșć·„äœ,é€äșç»äžȘäșș枊æ„èŁèȘäčć€,æŽéèŠçæŻćźæć©äșć»șèźŸćč¶äżæäžäžȘćŒș性ç瀟ćș。ćȘæćŒș性ç瀟ćș,æèœèź©æä»ŹäčæćŠäžèłäșæäžșć€éłææŻ;æŻäžȘäșșéœææç»ŽçČçč,ćȘæćŒș性ç瀟ćș,æèœèź©æä»Źćšć°æ„éć°éźéąæ¶,ćŻä»„ćä»äșșæ±ć©;èć°æ„ćœæä»Źæ èźșæŻä»„ææŻéȘšćčČçèș«ä»œèżæŻä»„ćäžè çèș«ä»œæ±èŽ€è„æžŽæ¶,äčćȘæćŒș性ç瀟ćșæèœäžșæä»ŹæäŸæșæșäžæçé«èŽšéçć°äŒäŒŽćż。æéèŠçæŻ,ćšć»șèźŸç€Ÿćșçèżçšäž,æä»Źç»èŻäșćŸć€ćæŹéççæć —— æèźž,ä»ä»ŹćæŹć°±æŻæä»Źçæć,ćȘæŻćšäžççæäžȘè§èœçćŸ æä»Źć»ćç°èć·Č。
Contributing to a strong community is the best way to pay back to the Angular team for their continuous investment in Angular.
èŽĄçźäžäžäžȘćŒș性ç瀟ćș,äčæŻæä»ŹćŻčAngularäș§ćéšéšćäœçäžæçæè”æèœç»äžçæäœłćæ„。
If we can do it, you can!
æèĄ,äœ äčèĄ!
Dear friends, we look forward to joining forces with you soon!
æćŸ æäžć€©èœäžäœ 仏èć©äŒćž。
Ralph Wang and Rex Ye
æ±Șćżæ & ć¶ćżæ
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.
Wednesday, March 16, 2016
Angular Material 2: Alpha preview!
On Tuesday, we released angular2-material alpha.0 - titanium-octopus, kicking off the public availability of the initial set of Angular Material 2 components.
What is Angular Material?
The goal of the Angular Material project is to build a set of reusable Angular components that implement Google's Material Design specification. We've already built a comprehensive set of these components with Angular 1; check out https://material.angularjs.org for demos and API docs. You can see these Angular Material 1 components in action on several Google products, such as Google Trends, Google Shopping Express, and your Google Search history.Angular Material 2 vs Angular Material 1: What's different?
The new Angular Material 2 components are built completely new on top of Angular 2 so that they can take advantage of the improvements to both Angular and the web platform. We're also taking the lessons we learned building the current Angular Material to create something better than ever.Can I use Angular Material 1 components in Angular 2 apps?
Sadly, no. To get the full benefits of Angular 2, you'll eventually need to upgrade to Angular Material 2.We're working on cookbook examples to help you plan the upgrade from Angular Material 1 to Angular Material 2. These will be available closer to final release.
What does this alpha mean for Angular Material 1 Apps?
This new version for Angular 2 doesn't mean that Angular Material 1 is going away any time soon.We know that many Angular 1 applications depend on Angular Material 1 for their UI, and that adoption of Angular 2 will take time. We are committed to both branches.
While bringing Angular Material 2 to feature parity, we are also actively working on maintaining and improving Angular Material 1, through regular minor and bugfix releases. We anticipate that Angular Material 1 will be supported for a long while.
What does the alpha process mean?
This alpha release is the first small step in an ongoing, rapid-iteration process. (So rapid, in fact, that we're already at alpha.1) Over the coming months, the team is going to be constantly adding new features, fixing issues, and incorporating community feedback. APIs will break, behaviors will change, and FABs will be flying everywhere! This process will let us hone-in on the best possible set of components for Angular 2 applications.Check out angular/material2 on GitHub for more information on how to try out the new Angular 2 components, and stay tuned here and on Twitter for future announcements!
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.
Monday, January 11, 2016
Angular 2: an MIT Open Source Licensed Framework
Open source licenses are meant to protect developers by making it clear how code can be used. We want developers to be confident that they can use, fork, modify, and extend Angular without worry.
At Google we prefer to license new projects under the Apache 2 license because we feel it gives the most rights to developers and creates a strong legal scaffold for projects to grow and thrive. However, what we've heard from users in the Angular community is that you prefer the MIT license. It's more widely used within JavaScript projects, it's shorter, and it’s better understood.
So, we're changing Angular back to the MIT license.
Happy coding.
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:






