Compare commits
70 Commits
4.0.0-beta
...
2.0.2
Author | SHA1 | Date | |
---|---|---|---|
91f7aa3b15 | |||
58b8091097 | |||
0fde7ecd0f | |||
d25cd244af | |||
e00de0c606 | |||
205103bdaa | |||
0528dcb9dc | |||
6f7ed32154 | |||
1bd8ba80a7 | |||
adb17fed98 | |||
3067ce6eb4 | |||
e102cd4757 | |||
db00ba7ae7 | |||
5a8f116687 | |||
02a862f8af | |||
7578d8573b | |||
de56e31cf0 | |||
eb85a7709a | |||
c99ef4938f | |||
7395400066 | |||
d985cc0253 | |||
aca117ac56 | |||
2c3825f2c8 | |||
ea6defcf11 | |||
975aca95bb | |||
5cb78566c2 | |||
9bacb32ec5 | |||
6970991546 | |||
bd012efcc4 | |||
2dd399658d | |||
d0dea574cb | |||
f7864edd4b | |||
9cc0a4ed10 | |||
3ee8c75eff | |||
b39d3a173e | |||
a4af1561b7 | |||
0851238e78 | |||
d2d98dad61 | |||
826c98e50c | |||
830e6352dd | |||
5911c3bd43 | |||
51e1994af0 | |||
faf5d90bf6 | |||
7e5413da89 | |||
e82a78e641 | |||
c13e55c8c3 | |||
a153504212 | |||
b8a75818ee | |||
f633826e99 | |||
0a8887240a | |||
6d606dd02b | |||
5c4215ccb4 | |||
85489a166e | |||
cf750e17ed | |||
712d1a7c37 | |||
16601f9359 | |||
b81e2e7a31 | |||
98fac36706 | |||
3e780c032e | |||
e09882180e | |||
0e18c57a17 | |||
51e2b9c073 | |||
f218e240d3 | |||
af6b219f8e | |||
20addf5f9f | |||
2860418a3c | |||
39e251eea7 | |||
d7d716d5db | |||
a95d65241c | |||
fdb22bd185 |
5
.gitignore
vendored
@ -3,7 +3,6 @@
|
|||||||
/dist/
|
/dist/
|
||||||
node_modules
|
node_modules
|
||||||
bower_components
|
bower_components
|
||||||
angular.io/dist
|
|
||||||
|
|
||||||
# Include when developing application packages.
|
# Include when developing application packages.
|
||||||
pubspec.lock
|
pubspec.lock
|
||||||
@ -26,7 +25,3 @@ npm-debug.log
|
|||||||
|
|
||||||
# rollup-test output
|
# rollup-test output
|
||||||
/modules/rollup-test/dist/
|
/modules/rollup-test/dist/
|
||||||
|
|
||||||
# angular.io
|
|
||||||
/angular.io/node_modules/
|
|
||||||
/angular.io/dist/
|
|
||||||
|
233
.pullapprove.yml
@ -1,233 +0,0 @@
|
|||||||
# Configuration for pullapprove.com
|
|
||||||
#
|
|
||||||
# Approval access and primary role is determined by info in the project ownership spreadsheet:
|
|
||||||
# https://docs.google.com/spreadsheets/d/1-HIlzfbPYGsPr9KuYMe6bLfc4LXzPjpoALqtYRYTZB0/edit?pli=1#gid=0&vpid=A5
|
|
||||||
#
|
|
||||||
# === GitHub username to Full name map ===
|
|
||||||
#
|
|
||||||
# alexeagle - Alex Eagle
|
|
||||||
# alxhub - Alex Rickabaugh
|
|
||||||
# chuckjaz - Chuck Jazdzewski
|
|
||||||
# gkalpak - George Kalpakas
|
|
||||||
# IgorMinar - Igor Minar
|
|
||||||
# kara - Kara Erickson
|
|
||||||
# matsko - Matias Niemelä
|
|
||||||
# mhevery - Misko Hevery
|
|
||||||
# petebacondarwin - Pete Bacon Darwin
|
|
||||||
# pkozlowski-opensource - Pawel Kozlowski
|
|
||||||
# robwormald - Rob Wormald
|
|
||||||
# tbosch - Tobias Bosch
|
|
||||||
# vicb - Victor Berchet
|
|
||||||
# vikerman - Vikram Subramanian
|
|
||||||
|
|
||||||
version: 2
|
|
||||||
|
|
||||||
group_defaults:
|
|
||||||
required: 1
|
|
||||||
reset_on_reopened:
|
|
||||||
enabled: true
|
|
||||||
approve_by_comment:
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
groups:
|
|
||||||
root:
|
|
||||||
conditions:
|
|
||||||
files:
|
|
||||||
include:
|
|
||||||
- "*"
|
|
||||||
exclude:
|
|
||||||
- "angular.io/*"
|
|
||||||
- "integration/*"
|
|
||||||
- "modules/*"
|
|
||||||
- "tools/*"
|
|
||||||
users:
|
|
||||||
- IgorMinar
|
|
||||||
- mhevery
|
|
||||||
|
|
||||||
build-and-ci:
|
|
||||||
conditions:
|
|
||||||
files:
|
|
||||||
include:
|
|
||||||
- "*.yml"
|
|
||||||
- "*.json"
|
|
||||||
- "*.lock"
|
|
||||||
- "tools/*"
|
|
||||||
exclude:
|
|
||||||
- "tools/@angular/tsc-wrapped/*"
|
|
||||||
users:
|
|
||||||
- IgorMinar #primary
|
|
||||||
- mhevery
|
|
||||||
|
|
||||||
integration:
|
|
||||||
conditions:
|
|
||||||
files:
|
|
||||||
- "integration/*"
|
|
||||||
users:
|
|
||||||
- alexeagle
|
|
||||||
- mhevery
|
|
||||||
- tbosch
|
|
||||||
- vicb
|
|
||||||
- IgorMinar #fallback
|
|
||||||
|
|
||||||
|
|
||||||
core:
|
|
||||||
conditions:
|
|
||||||
files:
|
|
||||||
- "modules/@angular/core/*"
|
|
||||||
users:
|
|
||||||
- tbosch #primary
|
|
||||||
- mhevery
|
|
||||||
- vicb
|
|
||||||
- IgorMinar #fallback
|
|
||||||
|
|
||||||
compiler/animations:
|
|
||||||
conditions:
|
|
||||||
files:
|
|
||||||
- "modules/@angular/compiler/src/animation/*"
|
|
||||||
users:
|
|
||||||
- matsko #primary
|
|
||||||
- tbosch
|
|
||||||
- IgorMinar #fallback
|
|
||||||
- mhevery #fallback
|
|
||||||
|
|
||||||
compiler/i18n:
|
|
||||||
conditions:
|
|
||||||
files:
|
|
||||||
- "modules/@angular/compiler/src/i18n/*"
|
|
||||||
users:
|
|
||||||
- vicb #primary
|
|
||||||
- tbosch
|
|
||||||
- IgorMinar #fallback
|
|
||||||
- mhevery #fallback
|
|
||||||
|
|
||||||
compiler:
|
|
||||||
conditions:
|
|
||||||
files:
|
|
||||||
- "modules/@angular/compiler/*"
|
|
||||||
users:
|
|
||||||
- tbosch #primary
|
|
||||||
- mhevery
|
|
||||||
- IgorMinar #fallback
|
|
||||||
|
|
||||||
compiler-cli:
|
|
||||||
conditions:
|
|
||||||
files:
|
|
||||||
- "tools/@angular/tsc-wrapped/*"
|
|
||||||
- "modules/@angular/compiler-cli/*"
|
|
||||||
users:
|
|
||||||
- alexeagle
|
|
||||||
- chuckjaz
|
|
||||||
- tbosch
|
|
||||||
- IgorMinar #fallback
|
|
||||||
- mhevery #fallback
|
|
||||||
|
|
||||||
common:
|
|
||||||
conditions:
|
|
||||||
files:
|
|
||||||
- "modules/@angular/common/*"
|
|
||||||
users:
|
|
||||||
- pkozlowski-opensource #primary
|
|
||||||
- vicb
|
|
||||||
- IgorMinar #fallback
|
|
||||||
- mhevery #fallback
|
|
||||||
|
|
||||||
forms:
|
|
||||||
conditions:
|
|
||||||
files:
|
|
||||||
- "modules/@angular/forms/*"
|
|
||||||
users:
|
|
||||||
- kara #primary
|
|
||||||
# needs secondary
|
|
||||||
- IgorMinar #fallback
|
|
||||||
- mhevery #fallback
|
|
||||||
|
|
||||||
http:
|
|
||||||
conditions:
|
|
||||||
files:
|
|
||||||
- "modules/@angular/http/*"
|
|
||||||
users:
|
|
||||||
- vikerman #primary
|
|
||||||
- alxhub
|
|
||||||
- IgorMinar #fallback
|
|
||||||
- mhevery #fallback
|
|
||||||
|
|
||||||
language-service:
|
|
||||||
conditions:
|
|
||||||
files:
|
|
||||||
- "modules/@angular/language-service/*"
|
|
||||||
users:
|
|
||||||
- chuckjaz #primary
|
|
||||||
# needs secondary
|
|
||||||
- IgorMinar #fallback
|
|
||||||
- mhevery #fallback
|
|
||||||
|
|
||||||
router:
|
|
||||||
conditions:
|
|
||||||
files:
|
|
||||||
- "modules/@angular/router/*"
|
|
||||||
users:
|
|
||||||
- vicb #primary
|
|
||||||
# needs secondary
|
|
||||||
- IgorMinar #fallback
|
|
||||||
- mhevery #fallback
|
|
||||||
|
|
||||||
upgrade:
|
|
||||||
conditions:
|
|
||||||
files:
|
|
||||||
- "modules/@angular/upgrade/*"
|
|
||||||
users:
|
|
||||||
- petebacondarwin #primary
|
|
||||||
- gkalpak
|
|
||||||
- IgorMinar #fallback
|
|
||||||
- mhevery #fallback
|
|
||||||
|
|
||||||
platform-browser:
|
|
||||||
conditions:
|
|
||||||
files:
|
|
||||||
- "modules/@angular/platform-browser/*"
|
|
||||||
users:
|
|
||||||
- tbosch #primary
|
|
||||||
- vicb
|
|
||||||
- IgorMinar #fallback
|
|
||||||
- mhevery #fallback
|
|
||||||
|
|
||||||
platform-server:
|
|
||||||
conditions:
|
|
||||||
files:
|
|
||||||
- "modules/@angular/platform-server/*"
|
|
||||||
users:
|
|
||||||
- vikerman #primary
|
|
||||||
- alxhub
|
|
||||||
- IgorMinar #fallback
|
|
||||||
- mhevery #fallback
|
|
||||||
|
|
||||||
platform-webworker:
|
|
||||||
conditions:
|
|
||||||
files:
|
|
||||||
- "modules/@angular/platform-webworker/*"
|
|
||||||
users:
|
|
||||||
- vicb #primary
|
|
||||||
# needs secondary
|
|
||||||
- IgorMinar #fallback
|
|
||||||
- mhevery #fallback
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
benchpress:
|
|
||||||
conditions:
|
|
||||||
files:
|
|
||||||
- "modules/@angular/benchpress/*"
|
|
||||||
users:
|
|
||||||
- tbosch #primary
|
|
||||||
# needs secondary
|
|
||||||
- IgorMinar #fallback
|
|
||||||
- mhevery #fallback
|
|
||||||
|
|
||||||
angular.io:
|
|
||||||
conditions:
|
|
||||||
files:
|
|
||||||
- "angular.io/*"
|
|
||||||
users:
|
|
||||||
- IgorMinar
|
|
||||||
- robwormald
|
|
||||||
- mhevery #fallback
|
|
26
.travis.yml
@ -2,9 +2,6 @@ language: node_js
|
|||||||
sudo: false
|
sudo: false
|
||||||
node_js:
|
node_js:
|
||||||
- '6.6.0'
|
- '6.6.0'
|
||||||
git:
|
|
||||||
# Increased from default (50) to ensure last release tag is in this range
|
|
||||||
depth: 150
|
|
||||||
|
|
||||||
addons:
|
addons:
|
||||||
# firefox: "38.0"
|
# firefox: "38.0"
|
||||||
@ -20,31 +17,23 @@ branches:
|
|||||||
- g3_v2_0
|
- g3_v2_0
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
yarn: true
|
|
||||||
directories:
|
directories:
|
||||||
- ./node_modules
|
- ./node_modules
|
||||||
- ./.chrome/chromium
|
- ./.chrome/chromium
|
||||||
- ./angular.io/node_modules
|
|
||||||
|
|
||||||
env:
|
env:
|
||||||
global:
|
global:
|
||||||
# GITHUB_TOKEN_ANGULAR
|
# GITHUB_TOKEN_ANGULAR
|
||||||
# This is needed for the e2e Travis matrix task to publish packages to github for continuous packages delivery.
|
# This is needed for the e2e Travis matrix task to publish packages to github for continuous packages delivery.
|
||||||
- secure: "fq/U7VDMWO8O8SnAQkdbkoSe2X92PVqg4d044HmRYVmcf6YbO48+xeGJ8yOk0pCBwl3ISO4Q2ot0x546kxfiYBuHkZetlngZxZCtQiFT9kyId8ZKcYdXaIW9OVdw3Gh3tQyUwDucfkVhqcs52D6NZjyE2aWZ4/d1V4kWRO/LMgo="
|
- secure: "fq/U7VDMWO8O8SnAQkdbkoSe2X92PVqg4d044HmRYVmcf6YbO48+xeGJ8yOk0pCBwl3ISO4Q2ot0x546kxfiYBuHkZetlngZxZCtQiFT9kyId8ZKcYdXaIW9OVdw3Gh3tQyUwDucfkVhqcs52D6NZjyE2aWZ4/d1V4kWRO/LMgo="
|
||||||
# FIREBASE_TOKEN
|
|
||||||
# This is needed for publishing builds to the "aio-staging" firebase site.
|
|
||||||
# TODO(i): the token was generated using the iminar@google account, we should switch to a shared/role-base account.
|
|
||||||
- secure: "MPx3UM77o5IlhT75PKHL0FXoB5tSXDc3vnCXCd1sRy4XUTZ9vjcV6nNuyqEf+SOw659bGbC1FI4mACGx1Q+z7MQDR85b1mcA9uSgHDkh+IR82CnCVdaX9d1RXafdJIArahxfmorbiiPPLyPIKggo7ituRm+2c+iraoCkE/pXxYg="
|
|
||||||
matrix:
|
matrix:
|
||||||
# Order: a slower build first, so that we don't occupy an idle travis worker waiting for others to complete.
|
# Order: a slower build first, so that we don't occupy an idle travis worker waiting for others to complete.
|
||||||
- CI_MODE=e2e EXPERIMENTAL_ES2015_DISTRO=1
|
- CI_MODE=js
|
||||||
- CI_MODE=js
|
- CI_MODE=e2e
|
||||||
- CI_MODE=saucelabs_required
|
- CI_MODE=saucelabs_required
|
||||||
- CI_MODE=browserstack_required
|
- CI_MODE=browserstack_required
|
||||||
- CI_MODE=saucelabs_optional
|
- CI_MODE=saucelabs_optional
|
||||||
- CI_MODE=browserstack_optional
|
- CI_MODE=browserstack_optional
|
||||||
- CI_MODE=docs_test
|
|
||||||
- CI_MODE=aio
|
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
fast_finish: true
|
fast_finish: true
|
||||||
@ -58,8 +47,5 @@ install:
|
|||||||
script:
|
script:
|
||||||
- ./scripts/ci-lite/build.sh && ./scripts/ci-lite/test.sh
|
- ./scripts/ci-lite/build.sh && ./scripts/ci-lite/test.sh
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./scripts/ci-lite/deploy_aio_staging.sh
|
|
||||||
|
|
||||||
after_script:
|
after_script:
|
||||||
- ./scripts/ci-lite/cleanup.sh
|
- ./scripts/ci-lite/cleanup.sh
|
||||||
|
934
CHANGELOG.md
@ -1,907 +1,3 @@
|
|||||||
<a name="4.0.0-beta.6"></a>
|
|
||||||
# [4.0.0-beta.6](https://github.com/angular/angular/compare/4.0.0-beta.5...4.0.0-beta.6) (2017-02-03)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* suppress some closure compiler warnings ([#14198](https://github.com/angular/angular/issues/14198)) ([2205829](https://github.com/angular/angular/commit/2205829))
|
|
||||||
* **common:** add PopStateEvent interface ([#13400](https://github.com/angular/angular/issues/13400)) ([fe44118](https://github.com/angular/angular/commit/fe44118)), closes [#13378](https://github.com/angular/angular/issues/13378)
|
|
||||||
* **common:** DatePipe shouldn't throw for NaN ([#14117](https://github.com/angular/angular/issues/14117)) ([7ad616a](https://github.com/angular/angular/commit/7ad616a)), closes [#14103](https://github.com/angular/angular/issues/14103)
|
|
||||||
* **common:** DatePipe should parses input string even if it's not a valid date in browser ([#13895](https://github.com/angular/angular/issues/13895)) ([093cc04](https://github.com/angular/angular/commit/093cc04)), closes [#12334](https://github.com/angular/angular/issues/12334) [#13874](https://github.com/angular/angular/issues/13874)
|
|
||||||
* **common:** use Symbol.observable to detect observables rather then presence of .subscribe ([#14067](https://github.com/angular/angular/issues/14067)) ([ff290af](https://github.com/angular/angular/commit/ff290af)), closes [#8848](https://github.com/angular/angular/issues/8848)
|
|
||||||
* **compiler:** allow empty translations for attributes ([#14085](https://github.com/angular/angular/issues/14085)) ([05b2b49](https://github.com/angular/angular/commit/05b2b49)), closes [#13897](https://github.com/angular/angular/issues/13897)
|
|
||||||
* avoid closure compiler warning ([#14229](https://github.com/angular/angular/issues/14229)) ([1bc5368](https://github.com/angular/angular/commit/1bc5368))
|
|
||||||
* **router:** should allow navigation from root component in ngOnInit hook ([#13932](https://github.com/angular/angular/issues/13932)) ([47d41d4](https://github.com/angular/angular/commit/47d41d4)), closes [#13795](https://github.com/angular/angular/issues/13795)
|
|
||||||
* failing integration test ([8270bec](https://github.com/angular/angular/commit/8270bec))
|
|
||||||
* lint errors to make circle-ci green ([e0e5e78](https://github.com/angular/angular/commit/e0e5e78))
|
|
||||||
* **router:** should find guard provided in a lazy loaded module ([#13929](https://github.com/angular/angular/issues/13929)) ([e075b1b](https://github.com/angular/angular/commit/e075b1b)), closes [#13530](https://github.com/angular/angular/issues/13530)
|
|
||||||
* ngModel should use rxjs/symbol/observable to detect observable ([#14236](https://github.com/angular/angular/issues/14236)) ([a7479f6](https://github.com/angular/angular/commit/a7479f6))
|
|
||||||
* **compiler:** allow expressions or functions in extends ([#14158](https://github.com/angular/angular/issues/14158)) ([b4214d6](https://github.com/angular/angular/commit/b4214d6)), closes [#14154](https://github.com/angular/angular/issues/14154)
|
|
||||||
* **compiler:** fix missing translations handling ([#14113](https://github.com/angular/angular/issues/14113)) ([827c3fe](https://github.com/angular/angular/commit/827c3fe))
|
|
||||||
* **compiler:** only lex messages that are needed by angular ([#14208](https://github.com/angular/angular/issues/14208)) ([5921c87](https://github.com/angular/angular/commit/5921c87))
|
|
||||||
* **core:** add bootstrapped modules into platform modules list ([#13740](https://github.com/angular/angular/issues/13740)) ([863285a](https://github.com/angular/angular/commit/863285a)), closes [#12015](https://github.com/angular/angular/issues/12015)
|
|
||||||
* **core:** ViewContainerRef.indexOf should not throw error when empty ([#13220](https://github.com/angular/angular/issues/13220)) ([a277e97](https://github.com/angular/angular/commit/a277e97))
|
|
||||||
* **forms:** async validator cancels previous subscription when input has changed ([#13222](https://github.com/angular/angular/issues/13222)) ([6c7300c](https://github.com/angular/angular/commit/6c7300c)), closes [#12709](https://github.com/angular/angular/issues/12709) [#9120](https://github.com/angular/angular/issues/9120) [#10074](https://github.com/angular/angular/issues/10074) [#8923](https://github.com/angular/angular/issues/8923)
|
|
||||||
* **forms:** fix broken unit test ([#14179](https://github.com/angular/angular/issues/14179)) ([1df9319](https://github.com/angular/angular/commit/1df9319))
|
|
||||||
* **forms:** show a blank line when nothing is selected in IE or Edge ([#13903](https://github.com/angular/angular/issues/13903)) ([029f558](https://github.com/angular/angular/commit/029f558)), closes [#10010](https://github.com/angular/angular/issues/10010)
|
|
||||||
* **forms:** verify functions passed into async validators returns Observable or Promise ([#14053](https://github.com/angular/angular/issues/14053)) ([94f84c5](https://github.com/angular/angular/commit/94f84c5))
|
|
||||||
* **http:** remove dots from jsonp callback name ([#13219](https://github.com/angular/angular/issues/13219)) ([9e5617e](https://github.com/angular/angular/commit/9e5617e))
|
|
||||||
* **http:** use params without RequestOptions ([#14101](https://github.com/angular/angular/issues/14101)) ([5f2b317](https://github.com/angular/angular/commit/5f2b317)), closes [#14100](https://github.com/angular/angular/issues/14100)
|
|
||||||
* **language-service:** do not crash when Angular cannot be located ([#14123](https://github.com/angular/angular/issues/14123)) ([49fb814](https://github.com/angular/angular/commit/49fb814)), closes [#14122](https://github.com/angular/angular/issues/14122)
|
|
||||||
* **platform-browser:** remove style nodes on destroy ([#13744](https://github.com/angular/angular/issues/13744)) ([cd3901f](https://github.com/angular/angular/commit/cd3901f)), closes [#11746](https://github.com/angular/angular/issues/11746)
|
|
||||||
* **router:** fix CanActivateChild guard provided in a lazy loaded module ([#13989](https://github.com/angular/angular/issues/13989)) ([579567c](https://github.com/angular/angular/commit/579567c)), closes [#12275](https://github.com/angular/angular/issues/12275)
|
|
||||||
* **testing:** async/fakeAsync/inject/withModule helpers should pass through context to callback functions ([#13718](https://github.com/angular/angular/issues/13718)) ([5f40e5b](https://github.com/angular/angular/commit/5f40e5b))
|
|
||||||
* **upgrade:** detect async downgrade component changes ([#14039](https://github.com/angular/angular/issues/14039)) ([20b454c](https://github.com/angular/angular/commit/20b454c)), closes [#6385](https://github.com/angular/angular/issues/6385) [#6385](https://github.com/angular/angular/issues/6385)
|
|
||||||
* **upgrade:** respect hierarchical injectors for downgraded components ([#14037](https://github.com/angular/angular/issues/14037)) ([1367cd9](https://github.com/angular/angular/commit/1367cd9))
|
|
||||||
* **compiler:** improve error messages in aot compiler ([#14017](https://github.com/angular/angular/issues/14017)) ([665dde2](https://github.com/angular/angular/commit/665dde2))
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* **aio:** add initial angular-cli scaffold ([#14118](https://github.com/angular/angular/issues/14118)) ([e130bc1](https://github.com/angular/angular/commit/e130bc1))
|
|
||||||
* **common:** rename underlying `NgFor` class and add a type parameter ([#14104](https://github.com/angular/angular/issues/14104)) ([86b2b25](https://github.com/angular/angular/commit/86b2b25))
|
|
||||||
* **compiler:** allow missing translations ([#14113](https://github.com/angular/angular/issues/14113)) ([8775ab9](https://github.com/angular/angular/commit/8775ab9)), closes [#13861](https://github.com/angular/angular/issues/13861)
|
|
||||||
* **compiler:** do not parse xtb messages not needed by angular ([#14111](https://github.com/angular/angular/issues/14111)) ([f7fba74](https://github.com/angular/angular/commit/f7fba74)), closes [#14046](https://github.com/angular/angular/issues/14046)
|
|
||||||
* **compiler:** generate type parameters for generic type references ([#14104](https://github.com/angular/angular/issues/14104)) ([69e14b5](https://github.com/angular/angular/commit/69e14b5))
|
|
||||||
* **core:** add query support to view engine ([1e729d7](https://github.com/angular/angular/commit/1e729d7)), closes [#14084](https://github.com/angular/angular/issues/14084)
|
|
||||||
* **forms:** add email validator ([#13709](https://github.com/angular/angular/issues/13709)) ([d69717c](https://github.com/angular/angular/commit/d69717c)), closes [#13706](https://github.com/angular/angular/issues/13706)
|
|
||||||
* **forms:** add equalsTo validator ([#14052](https://github.com/angular/angular/issues/14052)) ([7b7ae5f](https://github.com/angular/angular/commit/7b7ae5f))
|
|
||||||
* **core:** add NgModule support to NgComponentOutlet directive ([#14088](https://github.com/angular/angular/issues/14088)) ([3ef73c2](https://github.com/angular/angular/commit/3ef73c2)), closes [#14043](https://github.com/angular/angular/issues/14043)
|
|
||||||
* **router:** deprecate preserveQueryParams,add queryParamsHandling ([#14095](https://github.com/angular/angular/issues/14095)) ([c87c3be](https://github.com/angular/angular/commit/c87c3be))
|
|
||||||
* **tsc-wrapped:** record arity of generic classes ([#14104](https://github.com/angular/angular/issues/14104)) ([1079b93](https://github.com/angular/angular/commit/1079b93))
|
|
||||||
* **upgrade:** allow non-element selectors for downgraded components ([#14037](https://github.com/angular/angular/issues/14037)) ([9aafdc7](https://github.com/angular/angular/commit/9aafdc7))
|
|
||||||
* **upgrade:** export VERSION from `upgrade/static` ([#14037](https://github.com/angular/angular/issues/14037)) ([7670cc1](https://github.com/angular/angular/commit/7670cc1))
|
|
||||||
* **upgrade:** return a function (instead of array) from `downgradeInjectable()` ([#14037](https://github.com/angular/angular/issues/14037)) ([1f90f29](https://github.com/angular/angular/commit/1f90f29))
|
|
||||||
* **forms:** provide a method to compare options ([#13349](https://github.com/angular/angular/issues/13349)) ([f89d004](https://github.com/angular/angular/commit/f89d004)), closes [#13268](https://github.com/angular/angular/issues/13268)
|
|
||||||
|
|
||||||
|
|
||||||
### Performance Improvements
|
|
||||||
|
|
||||||
* use abstract keyword where possible to decrease file size. ([#14112](https://github.com/angular/angular/issues/14112)) ([670b680](https://github.com/angular/angular/commit/670b680))
|
|
||||||
* **core** simplify ReflectiveInjector by removing code for Dart implementation ([#14126](https://github.com/angular/angular/issues/14126)) ([670b680](https://github.com/angular/angular/commit/670b680))
|
|
||||||
|
|
||||||
|
|
||||||
### BREAKING CHANGES
|
|
||||||
|
|
||||||
* common: A definition of `Iterable<T>` is now required to correctly compile
|
|
||||||
Angular applications. Support for `Iterable<T>` is not required at
|
|
||||||
runtime but a type definition `Iterable<T>` must be available.
|
|
||||||
|
|
||||||
`NgFor`, and now `NgForOf<T>`, already supports `Iterable<T>` at
|
|
||||||
runtime. With this change the type definition is updated to reflect
|
|
||||||
this support.
|
|
||||||
|
|
||||||
Migration:
|
|
||||||
- add "es2015.iterable.ts" to your tsconfig.json "libs" fields.
|
|
||||||
|
|
||||||
Part of #12398
|
|
||||||
* upgrade: Previously, `upgrade/static/downgradeInjectable` returned an array of the form:
|
|
||||||
|
|
||||||
```js
|
|
||||||
['dep1', 'dep2', ..., function factory(dep1, dep2, ...) { ... }]
|
|
||||||
```
|
|
||||||
|
|
||||||
Now it returns a function with an `$inject` property:
|
|
||||||
|
|
||||||
```js
|
|
||||||
factory.$inject = ['dep1', 'dep2', ...];
|
|
||||||
function factory(dep1, dep2, ...) { ... }
|
|
||||||
```
|
|
||||||
|
|
||||||
It shouldn't affect the behavior of apps, since both forms are equally suitable
|
|
||||||
to be used for registering AngularJS injectable services, but it is possible
|
|
||||||
that type-checking might fail or that current code breaks if it relies on the
|
|
||||||
returned value being an array.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="2.4.6"></a>
|
|
||||||
## [2.4.6](https://github.com/angular/angular/compare/2.4.5...2.4.6) (2017-02-03)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **common:** add PopStateEvent interface ([#13400](https://github.com/angular/angular/issues/13400)) ([71567d1](https://github.com/angular/angular/commit/71567d1)), closes [#13378](https://github.com/angular/angular/issues/13378)
|
|
||||||
* **common:** DatePipe does't throw for NaN ([#14117](https://github.com/angular/angular/issues/14117)) ([32cc675](https://github.com/angular/angular/commit/32cc675)), closes [#14103](https://github.com/angular/angular/issues/14103)
|
|
||||||
* **common:** DatePipe parses input string if it's not a valid date in browser ([#13895](https://github.com/angular/angular/issues/13895)) ([e641636](https://github.com/angular/angular/commit/e641636)), closes [#12334](https://github.com/angular/angular/issues/12334) [#13874](https://github.com/angular/angular/issues/13874)
|
|
||||||
* **common:** introduce isObservable method ([#14067](https://github.com/angular/angular/issues/14067)) ([109f0d1](https://github.com/angular/angular/commit/109f0d1)), closes [#8848](https://github.com/angular/angular/issues/8848)
|
|
||||||
* **compiler:** allow empty translations for attributes ([#14085](https://github.com/angular/angular/issues/14085)) ([f3d5506](https://github.com/angular/angular/commit/f3d5506)), closes [#13897](https://github.com/angular/angular/issues/13897)
|
|
||||||
* **core:** add bootstrapped modules into platform modules list ([#13740](https://github.com/angular/angular/issues/13740)) ([250dbc4](https://github.com/angular/angular/commit/250dbc4)), closes [#12015](https://github.com/angular/angular/issues/12015)
|
|
||||||
* **core:** ViewContainerRef.indexOf should not throw error when empty ([#13220](https://github.com/angular/angular/issues/13220)) ([41b8d95](https://github.com/angular/angular/commit/41b8d95))
|
|
||||||
* **forms:** show a blank line when nothing is selected in IE or Edge ([#13903](https://github.com/angular/angular/issues/13903)) ([09e2d20](https://github.com/angular/angular/commit/09e2d20)), closes [#10010](https://github.com/angular/angular/issues/10010)
|
|
||||||
* **forms:** verify functions passed into async validators returns Observable or Promise ([#14053](https://github.com/angular/angular/issues/14053)) ([774e1db](https://github.com/angular/angular/commit/774e1db))
|
|
||||||
* ngModel should use rxjs/symbol/observable to detect observable ([#14236](https://github.com/angular/angular/issues/14236)) ([7e639aa](https://github.com/angular/angular/commit/7e639aa))
|
|
||||||
* **http:** remove dots from jsonp callback name ([#13219](https://github.com/angular/angular/issues/13219)) ([1eece50](https://github.com/angular/angular/commit/1eece50))
|
|
||||||
* **i18n:** parse ICU messages while normalizing templates ([#14153](https://github.com/angular/angular/issues/14153)) ([8d4aa82](https://github.com/angular/angular/commit/8d4aa82))
|
|
||||||
* **language-service:** do not crash when Angular cannot be located ([#14123](https://github.com/angular/angular/issues/14123)) ([a5b4af0](https://github.com/angular/angular/commit/a5b4af0)), closes [#14122](https://github.com/angular/angular/issues/14122)
|
|
||||||
* **platform-browser:** remove style nodes on destroy ([#13744](https://github.com/angular/angular/issues/13744)) ([0614289](https://github.com/angular/angular/commit/0614289)), closes [#11746](https://github.com/angular/angular/issues/11746)
|
|
||||||
* **router:** fix CanActivate redirect to the root on initial load ([#13929](https://github.com/angular/angular/issues/13929)) ([a047124](https://github.com/angular/angular/commit/a047124)), closes [#13530](https://github.com/angular/angular/issues/13530)
|
|
||||||
* **router:** should find guard provided in a lazy loaded module ([#13989](https://github.com/angular/angular/issues/13989)) ([0965636](https://github.com/angular/angular/commit/0965636)), closes [#12275](https://github.com/angular/angular/issues/12275)
|
|
||||||
* **router:** should allow navigation from root component in ngOnInit hook ([#13932](https://github.com/angular/angular/issues/13932)) ([4d2901d](https://github.com/angular/angular/commit/4d2901d)), closes [#13795](https://github.com/angular/angular/issues/13795)
|
|
||||||
* **testing:** async/fakeAsync/inject/withModule helpers should pass through context to callback functions ([#13718](https://github.com/angular/angular/issues/13718)) ([70bbdf5](https://github.com/angular/angular/commit/70bbdf5))
|
|
||||||
* **upgrade:** detect async downgrade component changes ([#14039](https://github.com/angular/angular/issues/14039)) ([117fa79](https://github.com/angular/angular/commit/117fa79)), closes [#6385](https://github.com/angular/angular/issues/6385) [#6385](https://github.com/angular/angular/issues/6385)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="4.0.0-beta.5"></a>
|
|
||||||
# [4.0.0-beta.5](https://github.com/angular/angular/compare/4.0.0-beta.3...4.0.0-beta.5) (2017-01-25)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **animations:** fix internal jscompiler issue and AOT quoting ([#13798](https://github.com/angular/angular/issues/13798)) ([c2aa981](https://github.com/angular/angular/commit/c2aa981))
|
|
||||||
* **common:** support numeric value as discrete cases for NgPlural ([#13876](https://github.com/angular/angular/issues/13876)) ([f364557](https://github.com/angular/angular/commit/f364557))
|
|
||||||
* **compiler:** [i18n] XMB/XTB placeholder names can contain only A-Z, 0-9, _n ([d02eab4](https://github.com/angular/angular/commit/d02eab4))
|
|
||||||
* **compiler:** fix regexp to support firefox 31 ([#14082](https://github.com/angular/angular/issues/14082)) ([b2f9d56](https://github.com/angular/angular/commit/b2f9d56)), closes [#14029](https://github.com/angular/angular/issues/14029) [#13900](https://github.com/angular/angular/issues/13900)
|
|
||||||
* **core:** export animation classes required for Renderer impl ([#14002](https://github.com/angular/angular/issues/14002)) ([83361d8](https://github.com/angular/angular/commit/83361d8)), closes [#14001](https://github.com/angular/angular/issues/14001)
|
|
||||||
* **core:** fix not declared variable in view engine ([#14045](https://github.com/angular/angular/issues/14045)) ([d3a3a8e](https://github.com/angular/angular/commit/d3a3a8e))
|
|
||||||
* **http:** don't create a blob out of ArrayBuffer when type is application/octet-stream ([#13992](https://github.com/angular/angular/issues/13992)) ([1200cf2](https://github.com/angular/angular/commit/1200cf2)), closes [#13973](https://github.com/angular/angular/issues/13973)
|
|
||||||
* **router:** enable loadChildren with function in aot ([#13909](https://github.com/angular/angular/issues/13909)) ([635bf02](https://github.com/angular/angular/commit/635bf02)), closes [#11075](https://github.com/angular/angular/issues/11075)
|
|
||||||
* **router:** routerLinkActive should not throw when not initialized ([#13273](https://github.com/angular/angular/issues/13273)) ([e8ea741](https://github.com/angular/angular/commit/e8ea741)), closes [#13270](https://github.com/angular/angular/issues/13270)
|
|
||||||
* **upgrade:** detect async downgrade component changes ([#13812](https://github.com/angular/angular/issues/13812)) ([d6382bf](https://github.com/angular/angular/commit/d6382bf)), closes [#6385](https://github.com/angular/angular/issues/6385) [#6385](https://github.com/angular/angular/issues/6385) [#10660](https://github.com/angular/angular/issues/10660) [#12318](https://github.com/angular/angular/issues/12318) [#12034](https://github.com/angular/angular/issues/12034)
|
|
||||||
* **upgrade/static:** ensure upgraded injector is initialized early enough ([#14065](https://github.com/angular/angular/issues/14065)) ([6152eb2](https://github.com/angular/angular/commit/6152eb2)), closes [#13811](https://github.com/angular/angular/issues/13811)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* **build:** optionally build an ES2015 distro ([#13471](https://github.com/angular/angular/issues/13471)) ([be6c95a](https://github.com/angular/angular/commit/be6c95a))
|
|
||||||
* **core:** add event support to view engine ([0adb97b](https://github.com/angular/angular/commit/0adb97b))
|
|
||||||
* **core:** add initial view engine ([#14014](https://github.com/angular/angular/issues/14014)) ([2f87eb5](https://github.com/angular/angular/commit/2f87eb5))
|
|
||||||
* **core:** add pure expression support to view engine ([6541737](https://github.com/angular/angular/commit/6541737))
|
|
||||||
* **core:** Add type information to injector.get() ([#13785](https://github.com/angular/angular/issues/13785)) ([d169c24](https://github.com/angular/angular/commit/d169c24))
|
|
||||||
* **security:** allow calc and gradient functions. ([#13943](https://github.com/angular/angular/issues/13943)) ([e19bf70](https://github.com/angular/angular/commit/e19bf70))
|
|
||||||
* **tsc-wrapped:** Support of vinyl like config file was added ([#13987](https://github.com/angular/angular/issues/13987)) ([0c7726d](https://github.com/angular/angular/commit/0c7726d))
|
|
||||||
* **upgrade:** Support ng-model in downgraded components ([#10578](https://github.com/angular/angular/issues/10578)) ([e21e9c5](https://github.com/angular/angular/commit/e21e9c5))
|
|
||||||
|
|
||||||
|
|
||||||
### BREAKING CHANGES
|
|
||||||
|
|
||||||
* core: - Because `injector.get()` is now parameterize it is possible that code
|
|
||||||
which used to work no longer type checks. Example would be if one
|
|
||||||
injects `Foo` but configures it as `{provide: Foo, useClass: MockFoo}`.
|
|
||||||
The injection instance will be that of `MockFoo` but the type will be
|
|
||||||
`Foo` instead of `any` as in the past. This means that it was possible
|
|
||||||
to call a method on `MockFoo` in the past which now will fail type
|
|
||||||
check. See this example:
|
|
||||||
|
|
||||||
```
|
|
||||||
class Foo {}
|
|
||||||
class MockFoo extends Foo {
|
|
||||||
setupMock();
|
|
||||||
}
|
|
||||||
|
|
||||||
var PROVIDERS = [
|
|
||||||
{provide: Foo, useClass: MockFoo}
|
|
||||||
];
|
|
||||||
|
|
||||||
...
|
|
||||||
|
|
||||||
function myTest(injector: Injector) {
|
|
||||||
var foo = injector.get(Foo);
|
|
||||||
// This line used to work since `foo` used to be `any` before this
|
|
||||||
// change, it will now be `Foo`, and `Foo` does not have `setUpMock()`.
|
|
||||||
// The fix is to downcast: `injector.get(Foo) as MockFoo`.
|
|
||||||
foo.setUpMock();
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="2.4.5"></a>
|
|
||||||
## [2.4.5](https://github.com/angular/angular/compare/2.4.4...2.4.5) (2017-01-25)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **compiler:** [i18n] XMB/XTB placeholder names can contain only A-Z, 0-9, _n ([5492fad](https://github.com/angular/angular/commit/5492fad))
|
|
||||||
* **compiler:** fix regexp to support firefox 31 ([#14082](https://github.com/angular/angular/issues/14082)) ([bd2eecb](https://github.com/angular/angular/commit/bd2eecb)), closes [#14029](https://github.com/angular/angular/issues/14029) [#13900](https://github.com/angular/angular/issues/13900)
|
|
||||||
* **core:** export animation classes required for Renderer impl ([#14002](https://github.com/angular/angular/issues/14002)) ([fd4f9ac](https://github.com/angular/angular/commit/fd4f9ac)), closes [#14001](https://github.com/angular/angular/issues/14001)
|
|
||||||
* **upgrade:** ensure upgraded injector is initialized early enough ([#14065](https://github.com/angular/angular/issues/14065)) ([3b2fb23](https://github.com/angular/angular/commit/3b2fb23)), closes [#13811](https://github.com/angular/angular/issues/13811)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="4.0.0-beta.4"></a>
|
|
||||||
# [4.0.0-beta.4](https://github.com/angular/angular/compare/4.0.0-beta.3...4.0.0-beta.4) (2017-01-19)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **animations:** fix internal jscompiler issue and AOT quoting ([#13798](https://github.com/angular/angular/issues/13798)) ([c2aa981](https://github.com/angular/angular/commit/c2aa981))
|
|
||||||
* **common:** support numeric value as discrete cases for NgPlural ([#13876](https://github.com/angular/angular/issues/13876)) ([f364557](https://github.com/angular/angular/commit/f364557))
|
|
||||||
* **http:** don't create a blob out of ArrayBuffer when type is application/octet-stream ([#13992](https://github.com/angular/angular/issues/13992)) ([1200cf2](https://github.com/angular/angular/commit/1200cf2)), closes [#13973](https://github.com/angular/angular/issues/13973)
|
|
||||||
* **router:** enable loadChildren with function in aot ([#13909](https://github.com/angular/angular/issues/13909)) ([635bf02](https://github.com/angular/angular/commit/635bf02)), closes [#11075](https://github.com/angular/angular/issues/11075)
|
|
||||||
* **router:** routerLinkActive should not throw when not initialized ([#13273](https://github.com/angular/angular/issues/13273)) ([e8ea741](https://github.com/angular/angular/commit/e8ea741)), closes [#13270](https://github.com/angular/angular/issues/13270)
|
|
||||||
* **security:** allow calc and gradient functions. ([#13943](https://github.com/angular/angular/issues/13943)) ([e19bf70](https://github.com/angular/angular/commit/e19bf70))
|
|
||||||
* **upgrade:** detect async downgrade component changes ([#13812](https://github.com/angular/angular/issues/13812)) ([d6382bf](https://github.com/angular/angular/commit/d6382bf)), closes [#6385](https://github.com/angular/angular/issues/6385) [#6385](https://github.com/angular/angular/issues/6385) [#10660](https://github.com/angular/angular/issues/10660) [#12318](https://github.com/angular/angular/issues/12318) [#12034](https://github.com/angular/angular/issues/12034)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* **build:** optionally build an ES2015 distro ([#13471](https://github.com/angular/angular/issues/13471)) ([be6c95a](https://github.com/angular/angular/commit/be6c95a))
|
|
||||||
* **core:** Add type information to injector.get() ([#13785](https://github.com/angular/angular/issues/13785)) ([d169c24](https://github.com/angular/angular/commit/d169c24))
|
|
||||||
|
|
||||||
|
|
||||||
### BREAKING CHANGES
|
|
||||||
|
|
||||||
* core: - Because `injector.get()` is now parameterized it is possible that code
|
|
||||||
which used to work no longer type checks. Example would be if one
|
|
||||||
injects `Foo` but configures it as `{provide: Foo, useClass: MockFoo}`.
|
|
||||||
The injection instance will be that of `MockFoo` but the type will be
|
|
||||||
`Foo` instead of `any` as in the past. This means that it was possible
|
|
||||||
to call a method on `MockFoo` in the past which now will fail type
|
|
||||||
check. See this example:
|
|
||||||
|
|
||||||
```
|
|
||||||
class Foo {}
|
|
||||||
class MockFoo extends Foo {
|
|
||||||
setupMock();
|
|
||||||
}
|
|
||||||
|
|
||||||
var PROVIDERS = [
|
|
||||||
{provide: Foo, useClass: MockFoo}
|
|
||||||
];
|
|
||||||
|
|
||||||
...
|
|
||||||
|
|
||||||
function myTest(injector: Injector) {
|
|
||||||
var foo = injector.get(Foo);
|
|
||||||
// This line used to work since `foo` used to be `any` before this
|
|
||||||
// change, it will now be `Foo`, and `Foo` does not have `setUpMock()`.
|
|
||||||
// The fix is to downcast: `injector.get(Foo) as MockFoo`.
|
|
||||||
foo.setUpMock();
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="2.4.4"></a>
|
|
||||||
## [2.4.4](https://github.com/angular/angular/compare/2.4.3...2.4.4) (2017-01-19)
|
|
||||||
|
|
||||||
* **animations:** fix internal jscompiler issue and AOT quoting ([#13798](https://github.com/angular/angular/issues/13798)) ([261fd16](https://github.com/angular/angular/commit/261fd16))
|
|
||||||
* **common:** support numeric value as discrete cases for NgPlural ([#13876](https://github.com/angular/angular/issues/13876)) ([3d0b1b8](https://github.com/angular/angular/commit/3d0b1b8))
|
|
||||||
* **http:** don't create a blob out of ArrayBuffer when type is application/octet-stream ([#13992](https://github.com/angular/angular/issues/13992)) ([015878a](https://github.com/angular/angular/commit/015878a)), closes [#13973](https://github.com/angular/angular/issues/13973)
|
|
||||||
* **router:** enable loadChildren with function in aot ([#13909](https://github.com/angular/angular/issues/13909)) ([2af5862](https://github.com/angular/angular/commit/2af5862)), closes [#11075](https://github.com/angular/angular/issues/11075)
|
|
||||||
* **router:** routerLinkActive should not throw when not initialized ([#13273](https://github.com/angular/angular/issues/13273)) ([49c4b0f](https://github.com/angular/angular/commit/49c4b0f)), closes [#13270](https://github.com/angular/angular/issues/13270)
|
|
||||||
* **security:** allow calc and gradient functions. ([#13943](https://github.com/angular/angular/issues/13943)) ([bd15110](https://github.com/angular/angular/commit/bd15110))
|
|
||||||
* **upgrade:** detect async downgrade component changes ([#13812](https://github.com/angular/angular/issues/13812)) ([2250082](https://github.com/angular/angular/commit/2250082)), closes [#6385](https://github.com/angular/angular/issues/6385) [#6385](https://github.com/angular/angular/issues/6385) [#10660](https://github.com/angular/angular/issues/10660) [#12318](https://github.com/angular/angular/issues/12318) [#12034](https://github.com/angular/angular/issues/12034)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="4.0.0-beta.3"></a>
|
|
||||||
# [4.0.0-beta.3](https://github.com/angular/angular/compare/4.0.0-beta.2...4.0.0-beta.3) (2017-01-11)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **compiler:** avoid evaluating arguments to unknown decorators ([d061adc](https://github.com/angular/angular/commit/d061adc)), closes [#13605](https://github.com/angular/angular/issues/13605)
|
|
||||||
* **compiler:** fix template binding parsing (`*directive="-..."`) ([e5c6bb4](https://github.com/angular/angular/commit/e5c6bb4)), closes [#13800](https://github.com/angular/angular/issues/13800)
|
|
||||||
* **compiler-cli:** add support for more than 2 levels of nested lazy routes ([5d9cbd7](https://github.com/angular/angular/commit/5d9cbd7)), closes [angular/angular-cli#3663](https://github.com/angular/angular-cli/issues/3663)
|
|
||||||
* **compiler-cli:** avoid handling functions in loadChildren as lazy load routes paths ([aeed737](https://github.com/angular/angular/commit/aeed737)), closes [angular/angular-cli#3204](https://github.com/angular/angular-cli/issues/3204)
|
|
||||||
* **core:** Add type information to differs ([8c7e93b](https://github.com/angular/angular/commit/8c7e93b)), closes [#13382](https://github.com/angular/angular/issues/13382)
|
|
||||||
* **i18n:** translate attributes inside elements marked for translation ([424e6c4](https://github.com/angular/angular/commit/424e6c4)), closes [#13796](https://github.com/angular/angular/issues/13796) [#13814](https://github.com/angular/angular/issues/13814)
|
|
||||||
* **router:** RouterLink mirrors input `target` as attribute ([d9a22da](https://github.com/angular/angular/commit/d9a22da)), closes [#13837](https://github.com/angular/angular/issues/13837)
|
|
||||||
* **router:** throw an error when navigate to null/undefined path ([46cb04d](https://github.com/angular/angular/commit/46cb04d)), closes [#10560](https://github.com/angular/angular/issues/10560) [#13384](https://github.com/angular/angular/issues/13384)
|
|
||||||
* **router:** fix checking for object intersection ([6d29fae](https://github.com/angular/angular/commit/6d29fae))
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* **animations:** expose the `element` value within transition events ([4bae4b3](https://github.com/angular/angular/commit/4bae4b3))
|
|
||||||
* **animations:** expose the `triggerName` within the transition event ([3f67ab0](https://github.com/angular/angular/commit/3f67ab0)), closes [#13600](https://github.com/angular/angular/issues/13600)
|
|
||||||
* **animations:** support function types in transitions ([9211a22](https://github.com/angular/angular/commit/9211a22)), closes [#13538](https://github.com/angular/angular/issues/13538) [#13537](https://github.com/angular/angular/issues/13537)
|
|
||||||
* **language-service:** support TS2.2 plugin model ([99aa49a](https://github.com/angular/angular/commit/99aa49a))
|
|
||||||
* **NgComponentOutlet:** add NgComponentOutlet directive ([8578682](https://github.com/angular/angular/commit/8578682)), closes [#11168](https://github.com/angular/angular/issues/11168)
|
|
||||||
* **NgTemplateOutlet:** Make NgTemplateOutlet compatible with * syntax ([c0178de](https://github.com/angular/angular/commit/c0178de))
|
|
||||||
* **router:** call resolver when upstream params change ([#12942](https://github.com/angular/angular/issues/12942)) ([d4d3782](https://github.com/angular/angular/commit/d4d3782))
|
|
||||||
|
|
||||||
|
|
||||||
### BREAKING CHANGES
|
|
||||||
|
|
||||||
* core: - `IterableChangeRecord` is now an interface and parameterized on `<V>`.
|
|
||||||
This should not be an issue unless your code does
|
|
||||||
`new IterableChangeRecord` which it should not have a reason to do.
|
|
||||||
- `KeyValueChangeRecord` is now an interface and parameterized on `<V>`.
|
|
||||||
This should not be an issue unless your code does
|
|
||||||
`new KeyValueChangeRecord` which it should not have a reason to do.
|
|
||||||
|
|
||||||
### DEPRECATION
|
|
||||||
|
|
||||||
* Deprecate `ngOutletContext`. Use `ngTemplateOutletContext` instead.
|
|
||||||
* `CollectionChangeRecord` is renamed to `IterableChangeRecord`.
|
|
||||||
`CollectionChangeRecord` is aliased to `IterableChangeRecord` and is
|
|
||||||
marked as `@deprecated`. It will be removed in `v6.x.x`.
|
|
||||||
* Deprecate `DefaultIterableDiffer` as it is private class which
|
|
||||||
was erroneously exposed.
|
|
||||||
* Deprecate `KeyValueDiffers#factories` as it is private field which
|
|
||||||
was erroneously exposed.
|
|
||||||
* Deprecate `IterableDiffers#factories` as it is private field which
|
|
||||||
was erroneously exposed.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="2.4.3"></a>
|
|
||||||
## [2.4.3](https://github.com/angular/angular/compare/2.4.2...2.4.3) (2017-01-11)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **compiler:** avoid evaluating arguments to unknown decorators ([5e9d3db](https://github.com/angular/angular/commit/5e9d3db)), closes [#13605](https://github.com/angular/angular/issues/13605)
|
|
||||||
* **compiler:** fix template binding parsing (`*directive="-..."`) ([7dc12b9](https://github.com/angular/angular/commit/7dc12b9)), closes [#13800](https://github.com/angular/angular/issues/13800)
|
|
||||||
* **compiler-cli:** add support for more than 2 levels of nested lazy routes ([6164eb2](https://github.com/angular/angular/commit/6164eb2)), closes [angular/angular-cli#3663](https://github.com/angular/angular-cli/issues/3663)
|
|
||||||
* **compiler-cli:** avoid handling functions in loadChildren as lazy load routes paths ([313683f](https://github.com/angular/angular/commit/313683f)), closes [angular/angular-cli#3204](https://github.com/angular/angular-cli/issues/3204)
|
|
||||||
* **i18n:** translate attributes inside elements marked for translation ([d7f2a3c](https://github.com/angular/angular/commit/d7f2a3c))
|
|
||||||
* **router:** RouterLink mirrors input `target` as attribute ([1c82b58](https://github.com/angular/angular/commit/1c82b58)), closes [#13837](https://github.com/angular/angular/issues/13837)
|
|
||||||
* **router:** throw an error when navigate to null/undefined path ([61ba223](https://github.com/angular/angular/commit/61ba223)), closes [#10560](https://github.com/angular/angular/issues/10560) [#13384](https://github.com/angular/angular/issues/13384)
|
|
||||||
* **router:** fix checking for object intersection ([1692265](https://github.com/angular/angular/commit/1692265))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="2.4.2"></a>
|
|
||||||
## [2.4.2](https://github.com/angular/angular/compare/2.4.1...2.4.2) (2017-01-06)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **common:** add link to trackBy docs from the error message ([#13634](https://github.com/angular/angular/issues/13634)) ([f723437](https://github.com/angular/angular/commit/f723437))
|
|
||||||
* **common:** do not override locale provided on bootstrap ([#13654](https://github.com/angular/angular/issues/13654)) ([5f49c3e](https://github.com/angular/angular/commit/5f49c3e)), closes [#13607](https://github.com/angular/angular/issues/13607)
|
|
||||||
* **common:** allow null/undefined values for `NgForTrackBy` ([6be55cc](https://github.com/angular/angular/commit/6be55cc)), closes [#13641](https://github.com/angular/angular/issues/13641)
|
|
||||||
* **compiler:** don’t throw when using `ANALYZE_FOR_ENTRY_COMPONENTS` with user classes ([#13679](https://github.com/angular/angular/issues/13679)) ([230e33f](https://github.com/angular/angular/commit/230e33f)), closes [#13565](https://github.com/angular/angular/issues/13565)
|
|
||||||
* **compiler:** query `<template>` elements before their children. ([#13677](https://github.com/angular/angular/issues/13677)) ([1cd73c7](https://github.com/angular/angular/commit/1cd73c7)), closes [#13118](https://github.com/angular/angular/issues/13118) [#13167](https://github.com/angular/angular/issues/13167)
|
|
||||||
* **compiler:** allow "." in attribute selectors ([#13653](https://github.com/angular/angular/issues/13653)) ([29ffdfd](https://github.com/angular/angular/commit/29ffdfd)), closes [#13645](https://github.com/angular/angular/issues/13645) [#13982](https://github.com/angular/angular/issues/13982)
|
|
||||||
* **core:** animations no longer silently exits if the element is not apart of the DOM ([#13763](https://github.com/angular/angular/issues/13763)) ([f1cde43](https://github.com/angular/angular/commit/f1cde43))
|
|
||||||
* **core:** animations should blend in all previously transitioned styles into next animation if interrupted ([#13148](https://github.com/angular/angular/issues/13148)) ([b245b92](https://github.com/angular/angular/commit/b245b92))
|
|
||||||
* **core:** remove reference to "Angular 2" in dev mode warning ([#13751](https://github.com/angular/angular/issues/13751)) ([21f5f05](https://github.com/angular/angular/commit/21f5f05))
|
|
||||||
* **core/testing:** improve misleading error message when don't call compileComponents ([#13543](https://github.com/angular/angular/issues/13543)) ([0e7f9f0](https://github.com/angular/angular/commit/0e7f9f0)), closes [#11301](https://github.com/angular/angular/issues/11301)
|
|
||||||
* **forms:** Validators.required properly validate arrays ([#13362](https://github.com/angular/angular/issues/13362)) ([17c5fa9](https://github.com/angular/angular/commit/17c5fa9)), closes [#12274](https://github.com/angular/angular/issues/12274)
|
|
||||||
* **language-service:** support TypeScript 2.1 ([#13655](https://github.com/angular/angular/issues/13655)) ([56b4296](https://github.com/angular/angular/commit/56b4296))
|
|
||||||
* **router:** fix lazy loaded module with wildcard route ([#13649](https://github.com/angular/angular/issues/13649)) ([5754ecc](https://github.com/angular/angular/commit/5754ecc)), closes [#12955](https://github.com/angular/angular/issues/12955)
|
|
||||||
* **router:** routerLink support of null ([#13380](https://github.com/angular/angular/issues/13380)) ([018865e](https://github.com/angular/angular/commit/018865e)), closes [#6971](https://github.com/angular/angular/issues/6971)
|
|
||||||
* **router:** update route snapshot before emit new values ([#13558](https://github.com/angular/angular/issues/13558)) ([9f6a647](https://github.com/angular/angular/commit/9f6a647)), closes [#12912](https://github.com/angular/angular/issues/12912)
|
|
||||||
* **upgrade:** fix/improve support for lifecycle hooks ([#13020](https://github.com/angular/angular/issues/13020)) ([21942a8](https://github.com/angular/angular/commit/21942a8))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="4.0.0-beta.2"></a>
|
|
||||||
# [4.0.0-beta.2](https://github.com/angular/angular/compare/4.0.0-beta.1...4.0.0-beta.2) (2017-01-06)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* **compiler:** generate less code for bindings to DOM elements ([db49d42](https://github.com/angular/angular/commit/db49d42))
|
|
||||||
* **compiler:** generate proper reexports in `.ngfactory.ts` files to not need transitive deps for compiling `.ngfactory.ts` files. ([#13524](https://github.com/angular/angular/issues/13524)) ([9c69703](https://github.com/angular/angular/commit/9c69703)), closes [#12787](https://github.com/angular/angular/issues/12787)
|
|
||||||
* **router:** add an extra argument to CanDeactivate interface ([#13560](https://github.com/angular/angular/issues/13560)) ([69fa3bb](https://github.com/angular/angular/commit/69fa3bb)), closes [#9853](https://github.com/angular/angular/issues/9853)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **compiler:** improve error message for undefined providers ([#13546](https://github.com/angular/angular/issues/13546)) ([6b02b80](https://github.com/angular/angular/commit/6b02b80)), closes [#10835](https://github.com/angular/angular/issues/10835)
|
|
||||||
* **compiler:** improve the error when template is not a string ([2c0c86e](https://github.com/angular/angular/commit/2c0c86e)), closes [#8708](https://github.com/angular/angular/issues/8708) [#13377](https://github.com/angular/angular/issues/13377)
|
|
||||||
* **compiler:** throw an error for invalid provider ([#13544](https://github.com/angular/angular/issues/13544)) ([445ed43](https://github.com/angular/angular/commit/445ed43)), closes [#8870](https://github.com/angular/angular/issues/8870)
|
|
||||||
* **i18n:** parse ICU messages while normalizing templates ([e74d8aa](https://github.com/angular/angular/commit/e74d8aa))
|
|
||||||
|
|
||||||
Note: 4.0.0-beta.2 release also contains all the changes present in the 2.4.2 release.
|
|
||||||
|
|
||||||
|
|
||||||
### BREAKING CHANGES
|
|
||||||
|
|
||||||
* **core**: `SimpleChange` now takes an additional argument that defines whether this is the first
|
|
||||||
change or not. This is a low profile API and we don't expect anyone to be affected by this change.
|
|
||||||
If you are impacted by this change please file an issue. ([465516b](https://github.com/angular/angular/commit/465516b))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="4.0.0-beta.1"></a>
|
|
||||||
# [4.0.0-beta.1](https://github.com/angular/angular/compare/2.4.0-marker...4.0.0-beta.1) (2016-12-22)
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* **upgrade:** support the `$doCheck()` lifecycle hook in `UpgradeComponent` ([#13015](https://github.com/angular/angular/issues/13015)) ([9da4c25](https://github.com/angular/angular/commit/9da4c25))
|
|
||||||
|
|
||||||
Note: 4.0.0-beta.1 release also contains all the changes present in the 2.4.0 and the 2.4.1 releases.
|
|
||||||
|
|
||||||
<a name="2.4.1"></a>
|
|
||||||
## [2.4.1](https://github.com/angular/angular/compare/2.4.0...2.4.1) (2016-12-21)
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **animations:** always quote string map key values in AOT code ([#13602](https://github.com/angular/angular/issues/13602)) ([6a5e46c](https://github.com/angular/angular/commit/6a5e46c))
|
|
||||||
* **animations:** always recover from a failed animation step ([#13604](https://github.com/angular/angular/issues/13604)) ([d788c67](https://github.com/angular/angular/commit/d788c67))
|
|
||||||
* **compiler:** ignore `@import` in comments ([#13368](https://github.com/angular/angular/issues/13368)) ([6316e5d](https://github.com/angular/angular/commit/6316e5d)), closes [#12196](https://github.com/angular/angular/issues/12196)
|
|
||||||
* **core:** improve error message when component factory cannot be found ([#13541](https://github.com/angular/angular/issues/13541)) ([b9e979e](https://github.com/angular/angular/commit/b9e979e)), closes [#12678](https://github.com/angular/angular/issues/12678)
|
|
||||||
* **router:** should reset location if a navigation by location is successful ([#13545](https://github.com/angular/angular/issues/13545)) ([a38f14b](https://github.com/angular/angular/commit/a38f14b)), closes [#13491](https://github.com/angular/angular/issues/13491)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="2.4.0"></a>
|
|
||||||
# [2.4.0 stability-interjection](https://github.com/angular/angular/compare/2.3.1...2.4.0) (2016-12-20)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **animations:** allow players to be destroyed before initialized ([#13346](https://github.com/angular/angular/issues/13346)) ([b36f4bc](https://github.com/angular/angular/commit/b36f4bc)), closes [#13293](https://github.com/angular/angular/issues/13293)
|
|
||||||
* **build:** use bash string comparison operator ([#13502](https://github.com/angular/angular/issues/13502)) ([50afbe0](https://github.com/angular/angular/commit/50afbe0))
|
|
||||||
* **compiler:** do not lex `}}` when interpolation is disabled ([#13531](https://github.com/angular/angular/issues/13531)) ([9b87bb6](https://github.com/angular/angular/commit/9b87bb6)), closes [#13525](https://github.com/angular/angular/issues/13525)
|
|
||||||
* **compiler-cli:** produce metadata for .d.ts files without metadata ([#13526](https://github.com/angular/angular/issues/13526)) ([debb0c9](https://github.com/angular/angular/commit/debb0c9)), closes [#13307](https://github.com/angular/angular/issues/13307) [#13473](https://github.com/angular/angular/issues/13473) [#13521](https://github.com/angular/angular/issues/13521)
|
|
||||||
* **i18n:** add a default example to xmb placeholders ([#13507](https://github.com/angular/angular/issues/13507)) ([3f17841](https://github.com/angular/angular/commit/3f17841))
|
|
||||||
* **upgrade:** fix `registerForNg1Tests` ([#13522](https://github.com/angular/angular/issues/13522)) ([c26c24c](https://github.com/angular/angular/commit/c26c24c))
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* update to `rxjs@5.0.1` and unpin the rxjs peerDeps via `^5.0.1` ([#13572](https://github.com/angular/angular/issues/13572)) ([8d5da1e](https://github.com/angular/angular/commit/8d5da1e)), closes [#13561](https://github.com/angular/angular/issues/13561) [#13478](https://github.com/angular/angular/issues/13478)
|
|
||||||
|
|
||||||
|
|
||||||
<a name="4.0.0-beta.0"></a>
|
|
||||||
# [4.0.0-beta.0](https://github.com/angular/angular/compare/2.3.0...4.0.0-beta.0) (2016-12-15)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* **common:** add a `titlecase` pipe ([#13324](https://github.com/angular/angular/issues/13324)) ([61d7c1e](https://github.com/angular/angular/commit/61d7c1e)), closes [#11436](https://github.com/angular/angular/issues/11436)
|
|
||||||
* **common:** export NgLocaleLocalization ([#13367](https://github.com/angular/angular/issues/13367)) ([56dce0e](https://github.com/angular/angular/commit/56dce0e)), closes [#11921](https://github.com/angular/angular/issues/11921)
|
|
||||||
* **compiler:** add id property to i18nMessage ([6dd5201](https://github.com/angular/angular/commit/6dd5201))
|
|
||||||
* **compiler:** digest methods return i18nMessage id if sets ([562f7a2](https://github.com/angular/angular/commit/562f7a2))
|
|
||||||
* **forms:** add novalidate by default ([#13092](https://github.com/angular/angular/issues/13092)) ([4c35be3](https://github.com/angular/angular/commit/4c35be3))
|
|
||||||
* **http:** simplify URLSearchParams creation ([#13338](https://github.com/angular/angular/issues/13338)) ([90c2235](https://github.com/angular/angular/commit/90c2235)), closes [#8858](https://github.com/angular/angular/issues/8858)
|
|
||||||
* **language-service:** warn when a method isn't called in an event ([#13437](https://github.com/angular/angular/issues/13437)) ([9ec0a4e](https://github.com/angular/angular/commit/9ec0a4e))
|
|
||||||
* **platform browser:** introduce Meta service ([#12322](https://github.com/angular/angular/issues/12322)) ([72361fb](https://github.com/angular/angular/commit/72361fb))
|
|
||||||
* **router:** routerLink add tabindex attribute ([#13094](https://github.com/angular/angular/issues/13094)) ([a006c14](https://github.com/angular/angular/commit/a006c14)), closes [#10895](https://github.com/angular/angular/issues/10895)
|
|
||||||
* **testing:** add overrideTemplate method ([#13372](https://github.com/angular/angular/issues/13372)) ([169ed82](https://github.com/angular/angular/commit/169ed82)), closes [#10685](https://github.com/angular/angular/issues/10685)
|
|
||||||
* **common** ngIf now supports else; saves condition to local var ([b4db73d](https://github.com/angular/angular/commit/b4db73d)), closes [#13061](https://github.com/angular/angular/issues/13061) [#13297](https://github.com/angular/angular/issues/13297)
|
|
||||||
|
|
||||||
Note: 4.0.0-beta.0 release also contains all the changes present in the 2.3.1 release.
|
|
||||||
|
|
||||||
<a name="2.3.1"></a>
|
|
||||||
## [2.3.1](https://github.com/angular/angular/compare/2.3.0...2.3.1) (2016-12-15)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **animations:** always cleanup players after they have finished internally ([#13334](https://github.com/angular/angular/issues/13334)) ([a26e054](https://github.com/angular/angular/commit/a26e054)), closes [#13333](https://github.com/angular/angular/issues/13333)
|
|
||||||
* **animations:** throw errors and normalize offset beyond the range of [0,1] ([6557bc3](https://github.com/angular/angular/commit/6557bc3)), closes [#13348](https://github.com/angular/angular/issues/13348) [#13440](https://github.com/angular/angular/issues/13440)
|
|
||||||
* **compiler:** emit quoted object literal keys if the source is quoted ([ecfad46](https://github.com/angular/angular/commit/ecfad46)), closes [#13249](https://github.com/angular/angular/issues/13249) [#13356](https://github.com/angular/angular/issues/13356)
|
|
||||||
* **compiler:** fix merge error in compiler_host ([69b52eb](https://github.com/angular/angular/commit/69b52eb))
|
|
||||||
* **compiler:** fix PR 13322 ([#13331](https://github.com/angular/angular/issues/13331)) ([79728b4](https://github.com/angular/angular/commit/79728b4))
|
|
||||||
* **compiler:** fix simplify a reference without a name ([1c279b3](https://github.com/angular/angular/commit/1c279b3)), closes [#13470](https://github.com/angular/angular/issues/13470)
|
|
||||||
* **compiler:** fix transpiled ES5 code ([#13322](https://github.com/angular/angular/issues/13322)) ([6c1d790](https://github.com/angular/angular/commit/6c1d790)), closes [#13301](https://github.com/angular/angular/issues/13301)
|
|
||||||
* **compiler:** generated CSS files suffixed with ngstyle. ([#13353](https://github.com/angular/angular/issues/13353)) ([c8a9b70](https://github.com/angular/angular/commit/c8a9b70)), closes [#13141](https://github.com/angular/angular/issues/13141)
|
|
||||||
* **compiler:** make sure provider values with `name` property don’t break. ([efa2d80](https://github.com/angular/angular/commit/efa2d80)), closes [#13394](https://github.com/angular/angular/issues/13394) [#13445](https://github.com/angular/angular/issues/13445)
|
|
||||||
* **compiler:** narrow the span reported for invalid pipes ([307d305](https://github.com/angular/angular/commit/307d305)), closes [#13326](https://github.com/angular/angular/issues/13326) [#13411](https://github.com/angular/angular/issues/13411)
|
|
||||||
* **compiler:** propagate exports when upgrading metadata to v2 ([f6ef7d6](https://github.com/angular/angular/commit/f6ef7d6))
|
|
||||||
* **compiler:** resolver should merge host bindings and listeners ([#13474](https://github.com/angular/angular/issues/13474)) ([6aeaca3](https://github.com/angular/angular/commit/6aeaca3)), closes [#13327](https://github.com/angular/angular/issues/13327)
|
|
||||||
* **compiler:** support dotted property binding ([8db184d](https://github.com/angular/angular/commit/8db184d)), closes [angular/flex-layout#34](https://github.com/angular/flex-layout/issues/34)
|
|
||||||
* **compiler:** update to metadata version 3 ([#13464](https://github.com/angular/angular/issues/13464)) ([b9b557c](https://github.com/angular/angular/commit/b9b557c))
|
|
||||||
* **core:** detectChanges() doesn't work on detached instance ([4d6ac9d](https://github.com/angular/angular/commit/4d6ac9d)), closes [#13426](https://github.com/angular/angular/issues/13426) [#13472](https://github.com/angular/angular/issues/13472)
|
|
||||||
* **core:** properly destroy embedded Views attatched to ApplicationRef ([#13459](https://github.com/angular/angular/issues/13459)) ([d40bbf4](https://github.com/angular/angular/commit/d40bbf4)), closes [#13062](https://github.com/angular/angular/issues/13062)
|
|
||||||
* **core:** remove logError from logGroup ([#12925](https://github.com/angular/angular/issues/12925)) ([5fab871](https://github.com/angular/angular/commit/5fab871))
|
|
||||||
* **forms:** ensure `select[multiple]` retains selections ([b3dcff0](https://github.com/angular/angular/commit/b3dcff0)), closes [#12527](https://github.com/angular/angular/issues/12527) [#12654](https://github.com/angular/angular/issues/12654)
|
|
||||||
* **forms:** fix Validators.min/maxLength with FormArray ([#13095](https://github.com/angular/angular/issues/13095)) ([7383e4a](https://github.com/angular/angular/commit/7383e4a)), closes [#13089](https://github.com/angular/angular/issues/13089)
|
|
||||||
* **forms:** introduce checkbox required validator ([124267c](https://github.com/angular/angular/commit/124267c)), closes [#11459](https://github.com/angular/angular/issues/11459) [#13364](https://github.com/angular/angular/issues/13364)
|
|
||||||
* **http:** check response body text against undefined ([#13017](https://github.com/angular/angular/issues/13017)) ([f106a18](https://github.com/angular/angular/commit/f106a18))
|
|
||||||
* **http:** create a copy of headers when merge options ([#13365](https://github.com/angular/angular/issues/13365)) ([65c9b5b](https://github.com/angular/angular/commit/65c9b5b)), closes [#11980](https://github.com/angular/angular/issues/11980)
|
|
||||||
* **language-service:** correctly type `undefined` ([0a7364f](https://github.com/angular/angular/commit/0a7364f)), closes [#13412](https://github.com/angular/angular/issues/13412) [#13414](https://github.com/angular/angular/issues/13414)
|
|
||||||
* **compiler**: better error when directive not listed in NgModule.declarations ([b0cd514](https://github.com/angular/angular/commit/b0cd514))
|
|
||||||
* **language-service:** treat string unions as strings ([#13406](https://github.com/angular/angular/issues/13406)) ([14dd2b3](https://github.com/angular/angular/commit/14dd2b3)), closes [#13403](https://github.com/angular/angular/issues/13403)
|
|
||||||
* **router:** add support for query params with multiple values ([e4d5a5f](https://github.com/angular/angular/commit/e4d5a5f)), closes [#11373](https://github.com/angular/angular/issues/11373)
|
|
||||||
* **router:** Use T type in Resolve interface ([#13242](https://github.com/angular/angular/issues/13242)) ([5ee8155](https://github.com/angular/angular/commit/5ee8155))
|
|
||||||
* **selector:** SelectorMatcher match elements with :not selector ([#12977](https://github.com/angular/angular/issues/12977)) ([392c9ac](https://github.com/angular/angular/commit/392c9ac))
|
|
||||||
* **tsc-wrapped:** generate metadata for exports without module specifier ([cd03c77](https://github.com/angular/angular/commit/cd03c77)), closes [#13327](https://github.com/angular/angular/issues/13327)
|
|
||||||
* **upgrade:** fix downgrade content projection and injector inheritance ([86c5098](https://github.com/angular/angular/commit/86c5098)), closes [#6629](https://github.com/angular/angular/issues/6629) [#7727](https://github.com/angular/angular/issues/7727) [#8729](https://github.com/angular/angular/issues/8729) [#9643](https://github.com/angular/angular/issues/9643) [#9649](https://github.com/angular/angular/issues/9649) [#12675](https://github.com/angular/angular/issues/12675)
|
|
||||||
* **upgrade:** enable AngularJS unit testing of upgrade module ([2fc0560](https://github.com/angular/angular/commit/2fc0560)), closes [#5462](https://github.com/angular/angular/issues/5462) [#12675](https://github.com/angular/angular/issues/12675)
|
|
||||||
|
|
||||||
|
|
||||||
### Performance Improvements
|
|
||||||
|
|
||||||
* **animations:** always run the animation queue outside of zones ([e2622ad](https://github.com/angular/angular/commit/e2622ad)), closes [#13440](https://github.com/angular/angular/issues/13440)
|
|
||||||
|
|
||||||
### Note ###
|
|
||||||
|
|
||||||
Due to regression in the 2.3.0 release that was fixed by [#13464](https://github.com/angular/angular/pull/13464),
|
|
||||||
components that have been compiled using 2.3.0 and published to npm will need to be recompiled and republished.
|
|
||||||
|
|
||||||
The >=2.3.1 compiler will issue is the following error if it encounters components compiled with 2.3.0:
|
|
||||||
`Unsupported metadata version 2 for module ${module}. This module should be compiled with a newer version of ngc`.
|
|
||||||
|
|
||||||
We are adding more tests to our test suite to catch these kinds of problems before we cut a release.
|
|
||||||
|
|
||||||
<a name="2.3.0"></a>
|
|
||||||
# [2.3.0](https://github.com/angular/angular/compare/2.3.0-rc.0...2.3.0) (2016-12-07)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **common:** make sure the plural category exists ([#13169](https://github.com/angular/angular/issues/13169)) ([82c81cd](https://github.com/angular/angular/commit/82c81cd)), closes [#12379](https://github.com/angular/angular/issues/12379)
|
|
||||||
* **compiler:** include the summaries of reexported modules / directives / pipes ([#13196](https://github.com/angular/angular/issues/13196)) ([75d1617](https://github.com/angular/angular/commit/75d1617))
|
|
||||||
* **compiler:** serialize any `StaticSymbol` correctly, not matter in which context ([5614c4f](https://github.com/angular/angular/commit/5614c4f))
|
|
||||||
* **compiler:** short-circut expressions with an index ([#13263](https://github.com/angular/angular/issues/13263)) ([f31c947](https://github.com/angular/angular/commit/f31c947)), closes [#13254](https://github.com/angular/angular/issues/13254)
|
|
||||||
* **core:** display framework version on bootstrapped component ([#13252](https://github.com/angular/angular/issues/13252)) ([16efb13](https://github.com/angular/angular/commit/16efb13))
|
|
||||||
* **facade:** cache original format string ([#12764](https://github.com/angular/angular/issues/12764)) ([a132287](https://github.com/angular/angular/commit/a132287))
|
|
||||||
* **http:** set the default Accept header ([#12989](https://github.com/angular/angular/issues/12989)) ([986abbe](https://github.com/angular/angular/commit/986abbe)), closes [#6354](https://github.com/angular/angular/issues/6354)
|
|
||||||
* **language-service:** avoid throwing for invalid class declarations ([#13257](https://github.com/angular/angular/issues/13257)) ([93556a5](https://github.com/angular/angular/commit/93556a5)), closes [#13253](https://github.com/angular/angular/issues/13253)
|
|
||||||
* **language-service:** do not throw for invalid metadata ([#13261](https://github.com/angular/angular/issues/13261)) ([4a09c81](https://github.com/angular/angular/commit/4a09c81)), closes [#13255](https://github.com/angular/angular/issues/13255)
|
|
||||||
* **language-service:** remove incompletely used parameter from `createLanguageServiceFromTypescript()` ([#13278](https://github.com/angular/angular/issues/13278)) ([25c2141](https://github.com/angular/angular/commit/25c2141)), closes [#13277](https://github.com/angular/angular/issues/13277)
|
|
||||||
* **language-service:** update to use `CompilerHost` from compiler-cli ([#13189](https://github.com/angular/angular/issues/13189)) ([3ff6554](https://github.com/angular/angular/commit/3ff6554))
|
|
||||||
* **router:** allow specifying a matcher without specifying a path ([bbb7a39](https://github.com/angular/angular/commit/bbb7a39)), closes [#12972](https://github.com/angular/angular/issues/12972)
|
|
||||||
* **router:** fix replaceUrl on RouterLink directives ([349ad75](https://github.com/angular/angular/commit/349ad75))
|
|
||||||
* **router:** fix skipLocationChanges on RouterLink directives ([f562cbf](https://github.com/angular/angular/commit/f562cbf)), closes [#13156](https://github.com/angular/angular/issues/13156)
|
|
||||||
* **router:** make setUpLocationChangeListener idempotent ([25e5b2f](https://github.com/angular/angular/commit/25e5b2f))
|
|
||||||
* **router:** runs guards every time when unsuccessfully navigating to the same url over and over again ([#13209](https://github.com/angular/angular/issues/13209)) ([d46b8de](https://github.com/angular/angular/commit/d46b8de))
|
|
||||||
* **router:** throw a better error message when AngularJS is not bootstraped ([c767df0](https://github.com/angular/angular/commit/c767df0))
|
|
||||||
* **router:** validate nested routes ([#13224](https://github.com/angular/angular/issues/13224)) ([2893c2c](https://github.com/angular/angular/commit/2893c2c)), closes [#12827](https://github.com/angular/angular/issues/12827)
|
|
||||||
* **tsc-wrapped:** have UserError display the actual error ([393c100](https://github.com/angular/angular/commit/393c100))
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* **compiler:** read and write `.ngsummary.json` files ([614a35d](https://github.com/angular/angular/commit/614a35d)), closes [#12787](https://github.com/angular/angular/issues/12787)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="2.3.0-rc.0"></a>
|
|
||||||
# [2.3.0-rc.0](https://github.com/angular/angular/compare/2.3.0-beta.0...2.3.0-rc.0) (2016-11-30)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **animations:** blend in all previously transitioned styles into next animation if interrupted ([#13014](https://github.com/angular/angular/issues/13014)) ([ef96763](https://github.com/angular/angular/commit/ef96763)), closes [#13013](https://github.com/angular/angular/issues/13013)
|
|
||||||
* **benchmarks:** use sanitized style values ([#12943](https://github.com/angular/angular/issues/12943)) ([fc5ac1e](https://github.com/angular/angular/commit/fc5ac1e))
|
|
||||||
* **build:** update versions of umd bundles ([#13038](https://github.com/angular/angular/issues/13038)) ([86ffa88](https://github.com/angular/angular/commit/86ffa88)), closes [#13037](https://github.com/angular/angular/issues/13037)
|
|
||||||
* **changelog:** replace beta.1 with beta.0 ([#12961](https://github.com/angular/angular/issues/12961)) ([07a986d](https://github.com/angular/angular/commit/07a986d))
|
|
||||||
* **ci:** pin version of npm on CircleCI ([#12954](https://github.com/angular/angular/issues/12954)) ([a3884db](https://github.com/angular/angular/commit/a3884db))
|
|
||||||
* **closure:** quote date pattern aliases ([#13012](https://github.com/angular/angular/issues/13012)) ([7dcca30](https://github.com/angular/angular/commit/7dcca30))
|
|
||||||
* **common:** update DatePipe to allow closure compilation ([b2b7219](https://github.com/angular/angular/commit/b2b7219))
|
|
||||||
* **compiler:** correctly evaluate references to static functions ([#13133](https://github.com/angular/angular/issues/13133)) ([627282d](https://github.com/angular/angular/commit/627282d))
|
|
||||||
* **compiler:** fix performance regression caused by 5b0f9e2 ([43c0e9a](https://github.com/angular/angular/commit/43c0e9a)), closes [#13146](https://github.com/angular/angular/issues/13146)
|
|
||||||
* **compiler:** fix versions of `@angular/tsc-wrapped` ([bccf0e6](https://github.com/angular/angular/commit/bccf0e6))
|
|
||||||
* **compiler-cli:** fix paths in source maps to be relative ([2a3ca7b](https://github.com/angular/angular/commit/2a3ca7b)), closes [#13040](https://github.com/angular/angular/issues/13040)
|
|
||||||
* **compiler-cli:** pin the version of `tsc-wrapped` ([966bcba](https://github.com/angular/angular/commit/966bcba))
|
|
||||||
* **language-service:** harden against partial normalization of directives ([2975d89](https://github.com/angular/angular/commit/2975d89))
|
|
||||||
* **core:** shrinkwrap was out of date with packages. ([e45b7ff](https://github.com/angular/angular/commit/e45b7ff))
|
|
||||||
* **language-service:** make link check pass ([7194fc2](https://github.com/angular/angular/commit/7194fc2))
|
|
||||||
* **router:** guards restore an incorrect url when used with skipLocationChange ([ad20d7d](https://github.com/angular/angular/commit/ad20d7d)), closes [#12825](https://github.com/angular/angular/issues/12825)
|
|
||||||
* **router:** support redirects to named outlets ([602522b](https://github.com/angular/angular/commit/602522b)), closes [#12740](https://github.com/angular/angular/issues/12740) [#9921](https://github.com/angular/angular/issues/9921)
|
|
||||||
* **tsc-wrapped:** set correct version number ([897555c](https://github.com/angular/angular/commit/897555c))
|
|
||||||
* **tsc-wrapped:** still emit version 1 metadata to allow use of new components in old setups ([bc69c74](https://github.com/angular/angular/commit/bc69c74))
|
|
||||||
* **upgrade:** call ng1 lifecycle hooks ([#12875](https://github.com/angular/angular/issues/12875)) ([1ef4696](https://github.com/angular/angular/commit/1ef4696))
|
|
||||||
* **version:** take all of version string after patch version ([f275f36](https://github.com/angular/angular/commit/f275f36))
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* **core:** update RxJS peer dependency to 5.0.0-rc.4 Please see [this gist](https://gist.github.com/robwormald/19dea0c70a6e01aadced6731aed4f9f7) if you depend on the `cache` operator ([2d6a003](https://github.com/angular/angular/commit/2d6a003)), closes [#13125](https://github.com/angular/angular/issues/13125)
|
|
||||||
* **core:** upgrade zone.js to v0.7.1 ([c4bbafc](https://github.com/angular/angular/commit/c4bbafc))
|
|
||||||
* **build:** record angular version in the dom ([#13164](https://github.com/angular/angular/issues/13164)) ([e628b66](https://github.com/angular/angular/commit/e628b66))
|
|
||||||
* **core:** expose destroy() method on ViewRef ([808275a](https://github.com/angular/angular/commit/808275a))
|
|
||||||
* **core:** properly support inheritance ([f5c8e09](https://github.com/angular/angular/commit/f5c8e09)), closes [#11606](https://github.com/angular/angular/issues/11606) [#12892](https://github.com/angular/angular/issues/12892)
|
|
||||||
* **language-service:** add services to support editors ([#12987](https://github.com/angular/angular/issues/12987)) ([519a324](https://github.com/angular/angular/commit/519a324))
|
|
||||||
* **router:** add support for custom route reuse strategies ([42cf06f](https://github.com/angular/angular/commit/42cf06f))
|
|
||||||
* **tools:** allow disabling annotation lowering ([c1a62e2](https://github.com/angular/angular/commit/c1a62e2))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="2.2.4"></a>
|
|
||||||
## [2.2.4](https://github.com/angular/angular/compare/2.2.3...2.2.4) (2016-11-30)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **common:** update DatePipe to allow closure compilation ([eba53fd](https://github.com/angular/angular/commit/eba53fd))
|
|
||||||
* **compiler:** fix performance regression caused by 5b0f9e2 ([ee2d6e5](https://github.com/angular/angular/commit/ee2d6e5)), closes [#13146](https://github.com/angular/angular/issues/13146)
|
|
||||||
* **compiler-cli:** fix paths in source maps to be relative ([eb173bc](https://github.com/angular/angular/commit/eb173bc)), closes [#13040](https://github.com/angular/angular/issues/13040)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="2.2.3"></a>
|
|
||||||
## [2.2.3](https://github.com/angular/angular/compare/2.2.2...2.2.3) (2016-11-23)
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **compiler:** Revert: fix versions of `@angular/tsc-wrapped` ([015ca47](https://github.com/angular/angular/commit/015ca47))
|
|
||||||
* **animations:** Revert: blend in all previously transitioned styles into next animation if interrupted ([c12e56e](https://github.com/angular/angular/commit/c12e56e))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="2.2.2"></a>
|
|
||||||
## [2.2.2](https://github.com/angular/angular/compare/2.2.1...2.2.2) (2016-11-22)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **animations:** blend in all previously transitioned styles into next animation if interrupted ([#13014](https://github.com/angular/angular/issues/13014)) ([ea4fc9b](https://github.com/angular/angular/commit/ea4fc9b)), closes [#13013](https://github.com/angular/angular/issues/13013)
|
|
||||||
* **benchmarks:** use sanitized style values ([#12943](https://github.com/angular/angular/issues/12943)) ([33a7902](https://github.com/angular/angular/commit/33a7902))
|
|
||||||
* **closure:** quote date pattern aliases ([#13012](https://github.com/angular/angular/issues/13012)) ([0956ace](https://github.com/angular/angular/commit/0956ace))
|
|
||||||
* **compiler:** fix versions of `@angular/tsc-wrapped` ([2fe6fb1](https://github.com/angular/angular/commit/2fe6fb1))
|
|
||||||
* **router:** add a banner file for the router ([#12919](https://github.com/angular/angular/issues/12919)) ([8df328b](https://github.com/angular/angular/commit/8df328b))
|
|
||||||
* **router:** add a banner file for the router ([#12919](https://github.com/angular/angular/issues/12919)) ([511cd4d](https://github.com/angular/angular/commit/511cd4d))
|
|
||||||
* **router:** removes a peer dependency from router to upgrade ([115f18f](https://github.com/angular/angular/commit/115f18f))
|
|
||||||
* **router:** removes a peer dependency from router to upgrade ([87d5d49](https://github.com/angular/angular/commit/87d5d49))
|
|
||||||
* **router:** support redirects to named outlets ([09226d9](https://github.com/angular/angular/commit/09226d9)), closes [#12740](https://github.com/angular/angular/issues/12740) [#9921](https://github.com/angular/angular/issues/9921)
|
|
||||||
* **upgrade:** call ng1 lifecycle hooks ([#12875](https://github.com/angular/angular/issues/12875)) ([462316b](https://github.com/angular/angular/commit/462316b))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="2.3.0-beta.0"></a>
|
|
||||||
# [2.3.0-beta.0](https://github.com/angular/angular/compare/2.2.0...2.3.0-beta.0) (2016-11-17)
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **compiler:** assert xliff messages have translations ([7908679](https://github.com/angular/angular/commit/7908679)), closes [#12815](https://github.com/angular/angular/issues/12815) [#12604](https://github.com/angular/angular/issues/12604)
|
|
||||||
* **compiler:** updates hash algo for xmb/xtb files ([2f14415](https://github.com/angular/angular/commit/2f14415))
|
|
||||||
* **core:** fix placeholders handling in i18n. ([76e4911](https://github.com/angular/angular/commit/76e4911)), closes [#12512](https://github.com/angular/angular/issues/12512)
|
|
||||||
* **core:** misc i18n fixes ([ed5e98d](https://github.com/angular/angular/commit/ed5e98d))
|
|
||||||
* **core:** xmb serializer uses decimal messaged IDs ([08c038e](https://github.com/angular/angular/commit/08c038e)), closes [#12511](https://github.com/angular/angular/issues/12511)
|
|
||||||
* **platform-browser:** enable AOT ([efbbefd](https://github.com/angular/angular/commit/efbbefd)), closes [#12783](https://github.com/angular/angular/issues/12783)
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* **core:** add `attachView` / `detachView` to ApplicationRef ([9f7d32a](https://github.com/angular/angular/commit/9f7d32a)), closes [#9293](https://github.com/angular/angular/issues/9293)
|
|
||||||
* **core:** expose `ViewRef` as `ChangeDetectorRef` ([1b5384e](https://github.com/angular/angular/commit/1b5384e)), closes [#12722](https://github.com/angular/angular/issues/12722)
|
|
||||||
* **core:** implements a decimal fingerprint for i18n ([582550a](https://github.com/angular/angular/commit/582550a))
|
|
||||||
* **router:** register router with ngprobe ([c2fae72](https://github.com/angular/angular/commit/c2fae72))
|
|
||||||
* **router_link:** add skipLocationChange and replaceUrl inputs ([#12850](https://github.com/angular/angular/issues/12850)) ([46d1502](https://github.com/angular/angular/commit/46d1502))
|
|
||||||
|
|
||||||
Note: The 2.3.0-beta.0 release also contains all the changes present in the 2.2.1 release.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="2.2.1"></a>
|
|
||||||
## [2.2.1](https://github.com/angular/angular/compare/2.2.0...2.2.1) (2016-11-17)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **animations:** only pass in same typed players as previous players into web-animations ([#12907](https://github.com/angular/angular/issues/12907)) ([583d283](https://github.com/angular/angular/commit/583d283))
|
|
||||||
* **animations:** retain styling when transition destinations are changed ([#12208](https://github.com/angular/angular/issues/12208)) ([5c46c49](https://github.com/angular/angular/commit/5c46c49)), closes [#9661](https://github.com/angular/angular/issues/9661)
|
|
||||||
* **core:** support `ngTemplateOutlet` in production mode ([#12921](https://github.com/angular/angular/issues/12921)) ([4628798](https://github.com/angular/angular/commit/4628798)), closes [#12911](https://github.com/angular/angular/issues/12911)
|
|
||||||
* **http:** correctly handle response body for 204 status code ([21a4de9](https://github.com/angular/angular/commit/21a4de9)), closes [#12830](https://github.com/angular/angular/issues/12830) [#12393](https://github.com/angular/angular/issues/12393)
|
|
||||||
* **http:** return request url if it cannot be retrieved from response ([845ea23](https://github.com/angular/angular/commit/845ea23)), closes [#12837](https://github.com/angular/angular/issues/12837)
|
|
||||||
* **upgrade:** make AoT ngUpgrade work with the testability API and resumeBootstrap() ([#12910](https://github.com/angular/angular/issues/12910)) ([dc1662a](https://github.com/angular/angular/commit/dc1662a))
|
|
||||||
* **platform-browser:** fix disableDebugTools() ([#12918](https://github.com/angular/angular/issues/12918)) ([7b67bad](https://github.com/angular/angular/commit/7b67bad))
|
|
||||||
* **router:** add a banner file for the router ([#12919](https://github.com/angular/angular/issues/12919)) ([364642d](https://github.com/angular/angular/commit/364642d))
|
|
||||||
* **router:** removes a peer dependency from router to upgrade ([1dcf1f4](https://github.com/angular/angular/commit/1dcf1f4))
|
|
||||||
* **forms** allow for null values in HTML select options bound with ngValue ([e0ce545](https://github.com/angular/angular/commit/e0ce545)), closes [#10349](https://github.com/angular/angular/issues/10349)
|
|
||||||
* **router:** should not create a route state if navigation is canceled ([#12868](https://github.com/angular/angular/issues/12868)) ([dabaf85](https://github.com/angular/angular/commit/dabaf85)), closes [#12776](https://github.com/angular/angular/issues/12776)
|
|
||||||
* **common:** select should allow for null values in HTML select options bound with ngValue ([e02c180](https://github.com/angular/angular/commit/e02c180)), closes [#12829](https://github.com/angular/angular/issues/12829)
|
|
||||||
* **compiler-cli:** support ctorParams in function closure ([#12876](https://github.com/angular/angular/issues/12876)) ([6cdc3b5](https://github.com/angular/angular/commit/6cdc3b5))
|
|
||||||
|
|
||||||
|
|
||||||
<a name="2.2.0"></a>
|
|
||||||
# [2.2.0 upgrade-firebooster](https://github.com/angular/angular/compare/2.2.0-rc.0...2.2.0) (2016-11-14)
|
|
||||||
|
|
||||||
### Features (summary of all features from 2.2.0-beta.0 - 2.2.0-rc.0 releases)
|
|
||||||
|
|
||||||
* **common:** support narrow forms for month and weekdays in DatePipe ([#12297](https://github.com/angular/angular/issues/12297)) ([f77ab6a](https://github.com/angular/angular/commit/f77ab6a)), closes [#12294](https://github.com/angular/angular/issues/12294)
|
|
||||||
* **core:** map 'for' attribute to 'htmlFor' property ([#10546](https://github.com/angular/angular/issues/10546)) ([634b3bb](https://github.com/angular/angular/commit/634b3bb)), closes [#7516](https://github.com/angular/angular/issues/7516)
|
|
||||||
* **core:** add the find method to QueryList ([7c16ef9](https://github.com/angular/angular/commit/7c16ef9))
|
|
||||||
* **forms:** add hasError and getError to AbstractControlDirective ([#11985](https://github.com/angular/angular/issues/11985)) ([592f40a](https://github.com/angular/angular/commit/592f40a)), closes [#7255](https://github.com/angular/angular/issues/7255)
|
|
||||||
* **forms:** add ng-pending CSS class during async validation ([#11243](https://github.com/angular/angular/issues/11243)) ([97bc971](https://github.com/angular/angular/commit/97bc971)), closes [#10336](https://github.com/angular/angular/issues/10336)
|
|
||||||
* **forms:** add emitEvent to AbstractControl methods ([#11949](https://github.com/angular/angular/issues/11949)) ([b9fc090](https://github.com/angular/angular/commit/b9fc090))
|
|
||||||
* **forms:** make 'parent' a public property of 'AbstractControl' ([#11855](https://github.com/angular/angular/issues/11855)) ([445e592](https://github.com/angular/angular/commit/445e592))
|
|
||||||
* **forms:** Validator.pattern accepts a RegExp ([#12323](https://github.com/angular/angular/issues/12323)) ([bf60418](https://github.com/angular/angular/commit/bf60418))
|
|
||||||
* **router:** add a provider making angular1/angular2 integration easier ([#12769](https://github.com/angular/angular/issues/12769)) ([6e35d13](https://github.com/angular/angular/commit/6e35d13))
|
|
||||||
* **router:** add support for custom url matchers ([7340735](https://github.com/angular/angular/commit/7340735)), closes [#12442](https://github.com/angular/angular/issues/12442) [#12772](https://github.com/angular/angular/issues/12772)
|
|
||||||
* **router:** export routerLinkActive w/ isActive property ([c9f58cf](https://github.com/angular/angular/commit/c9f58cf))
|
|
||||||
* **router:** add support for ng1/ng2 migration ([#12160](https://github.com/angular/angular/issues/12160)) ([8b9ab44](https://github.com/angular/angular/commit/8b9ab44))
|
|
||||||
* **upgrade:** add support for AoT compiled upgrade applications ([d6791ff](https://github.com/angular/angular/commit/d6791ff)), closes [#12239](https://github.com/angular/angular/issues/12239)
|
|
||||||
* **upgrade:** add support for `require` in UpgradeComponent ([fe1d0e2](https://github.com/angular/angular/commit/fe1d0e2))
|
|
||||||
* **upgrade:** add/improve support for lifecycle hooks in UpgradeComponent ([469010e](https://github.com/angular/angular/commit/469010e))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Performance Improvements
|
|
||||||
|
|
||||||
* **compiler:** introduce direct rendering ([9c23884](https://github.com/angular/angular/commit/9c23884))
|
|
||||||
* **core:** don’t use `DomAdapter` nor zone for regular events ([648ce59](https://github.com/angular/angular/commit/648ce59))
|
|
||||||
* **core:** use `array.push` / `array.pop` instead of `splice` if possible ([0fc11a4](https://github.com/angular/angular/commit/0fc11a4))
|
|
||||||
* **platform-browser:** cache plugin resolution in the EventManager ([73593d4](https://github.com/angular/angular/commit/73593d4)), closes [#12824](https://github.com/angular/angular/issues/12824)
|
|
||||||
* **platform-browser:** don’t use `DomAdapter` any more ([d708a88](https://github.com/angular/angular/commit/d708a88))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **animations:** allow animations to be destroyed manually ([#12719](https://github.com/angular/angular/issues/12719)) ([fe35bc3](https://github.com/angular/angular/commit/fe35bc3)), closes [#12456](https://github.com/angular/angular/issues/12456)
|
|
||||||
* **animations:** always normalize style properties and values during compilation ([#12755](https://github.com/angular/angular/issues/12755)) ([a0e9fde](https://github.com/angular/angular/commit/a0e9fde)), closes [#11582](https://github.com/angular/angular/issues/11582) [#12481](https://github.com/angular/angular/issues/12481)
|
|
||||||
* **animations:** always trigger animations after the change detection check ([#12713](https://github.com/angular/angular/issues/12713)) ([383f23b](https://github.com/angular/angular/commit/383f23b))
|
|
||||||
* **animations:** ensure animations work with web-workers ([#12656](https://github.com/angular/angular/issues/12656)) ([19e869e](https://github.com/angular/angular/commit/19e869e))
|
|
||||||
* **animations:** ensure web-animations are caught within the Angular zone ([f80a157](https://github.com/angular/angular/commit/f80a157)), closes [#11881](https://github.com/angular/angular/issues/11881) [#11712](https://github.com/angular/angular/issues/11712) [#12355](https://github.com/angular/angular/issues/12355) [#11881](https://github.com/angular/angular/issues/11881) [#12546](https://github.com/angular/angular/issues/12546) [#12707](https://github.com/angular/angular/issues/12707) [#12774](https://github.com/angular/angular/issues/12774)
|
|
||||||
* **common:** `NgSwitch` - don’t create the default case if another case matches ([#12726](https://github.com/angular/angular/issues/12726)) ([d8f23f4](https://github.com/angular/angular/commit/d8f23f4)), closes [#11297](https://github.com/angular/angular/issues/11297) [#9420](https://github.com/angular/angular/issues/9420)
|
|
||||||
* **common:** I18nSelectPipe selects other case on default ([4708b24](https://github.com/angular/angular/commit/4708b24))
|
|
||||||
* **common:** no TZ Offset added by DatePipe for dates without time ([#12380](https://github.com/angular/angular/issues/12380)) ([2aba8b0](https://github.com/angular/angular/commit/2aba8b0))
|
|
||||||
* **common:** NgClass should throw a descriptive error when CSS class is not a string ([#12662](https://github.com/angular/angular/issues/12662)) ([f3793b5](https://github.com/angular/angular/commit/f3793b5)), closes [#12586](https://github.com/angular/angular/issues/12586)
|
|
||||||
* **common:** DatePipe should handle empty string ([#12374](https://github.com/angular/angular/issues/12374)) ([3dc6177](https://github.com/angular/angular/commit/3dc6177))
|
|
||||||
* **compiler:** don't convert undefined to null literals ([#11503](https://github.com/angular/angular/issues/11503)) ([f0cdb42](https://github.com/angular/angular/commit/f0cdb42)), closes [#11493](https://github.com/angular/angular/issues/11493)
|
|
||||||
* **compiler:** generate safe access strictNullChecks compatible code ([#12800](https://github.com/angular/angular/issues/12800)) ([a965d11](https://github.com/angular/angular/commit/a965d11)), closes [#12795](https://github.com/angular/angular/issues/12795)
|
|
||||||
* **compiler:** support more than 9 interpolations ([#12710](https://github.com/angular/angular/issues/12710)) ([22c021c](https://github.com/angular/angular/commit/22c021c)), closes [#10253](https://github.com/angular/angular/issues/10253)
|
|
||||||
* **compiler:** use the other case by default in ICU messages ([55dc0e4](https://github.com/angular/angular/commit/55dc0e4))
|
|
||||||
* **compiler-cli:** suppress closure compiler suspiciousCode check in codegen ([#12666](https://github.com/angular/angular/issues/12666)) ([7103754](https://github.com/angular/angular/commit/7103754))
|
|
||||||
* **compiler-cli:** suppress two more closure compiler checks in codegen ([#12698](https://github.com/angular/angular/issues/12698)) ([77cbf7f](https://github.com/angular/angular/commit/77cbf7f))
|
|
||||||
* **core:** allow to query content of templates that are stamped out at a different place ([f2bbef3](https://github.com/angular/angular/commit/f2bbef3)), closes [#12283](https://github.com/angular/angular/issues/12283) [#12094](https://github.com/angular/angular/issues/12094)
|
|
||||||
* **core:** apply host attributes to root elements ([#12761](https://github.com/angular/angular/issues/12761)) ([ad3bf6c](https://github.com/angular/angular/commit/ad3bf6c)), closes [#12744](https://github.com/angular/angular/issues/12744)
|
|
||||||
* **core:** ensure that component views that have no bindings recurse into nested components / view containers. ([051d748](https://github.com/angular/angular/commit/051d748))
|
|
||||||
* **core:** fix pseudo-selector shimming ([#12754](https://github.com/angular/angular/issues/12754)) ([acbf1d8](https://github.com/angular/angular/commit/acbf1d8)), closes [#12730](https://github.com/angular/angular/issues/12730) [#12354](https://github.com/angular/angular/issues/12354)
|
|
||||||
* **forms:** check if registerOnValidatorChange exists on validator before trying to invoke it ([#12801](https://github.com/angular/angular/issues/12801)) ([ef88147](https://github.com/angular/angular/commit/ef88147)), closes [#12593](https://github.com/angular/angular/issues/12593)
|
|
||||||
* **forms:** getRawValue returns any instead of Object ([#12599](https://github.com/angular/angular/issues/12599)) ([09092ac](https://github.com/angular/angular/commit/09092ac))
|
|
||||||
* **http:** preserve header case when copying headers ([#12697](https://github.com/angular/angular/issues/12697)) ([121e508](https://github.com/angular/angular/commit/121e508))
|
|
||||||
* **router:** advance a route only after its children have been deactivated ([#12676](https://github.com/angular/angular/issues/12676)) ([9ddf9b3](https://github.com/angular/angular/commit/9ddf9b3)), closes [#11715](https://github.com/angular/angular/issues/11715)
|
|
||||||
* **router:** avoid router initialization for non root components ([2a4bf9a](https://github.com/angular/angular/commit/2a4bf9a)), closes [#12338](https://github.com/angular/angular/issues/12338) [#12814](https://github.com/angular/angular/issues/12814)
|
|
||||||
* **router:** check if windows.console exists before using it ([#12348](https://github.com/angular/angular/issues/12348)) ([7886561](https://github.com/angular/angular/commit/7886561))
|
|
||||||
* **router:** correctly export concatMap operator in es5 ([#12430](https://github.com/angular/angular/issues/12430)) ([e25baa0](https://github.com/angular/angular/commit/e25baa0))
|
|
||||||
* **router:** do not require the creation of empty-path routes when no url left ([2c11093](https://github.com/angular/angular/commit/2c11093)), closes [#12133](https://github.com/angular/angular/issues/12133)
|
|
||||||
* **router:** ignore null or undefined query parameters ([#12333](https://github.com/angular/angular/issues/12333)) ([3052fb2](https://github.com/angular/angular/commit/3052fb2))
|
|
||||||
* **router:** incorrect injector is used when instantiating components loaded lazily ([#12817](https://github.com/angular/angular/issues/12817)) ([52be848](https://github.com/angular/angular/commit/52be848))
|
|
||||||
* **router:** resolve guard observables on the first emit ([#10412](https://github.com/angular/angular/issues/10412)) ([2e78b76](https://github.com/angular/angular/commit/2e78b76))
|
|
||||||
* **router:** Route.isActive also compares query params ([#12321](https://github.com/angular/angular/issues/12321)) ([785b7b6](https://github.com/angular/angular/commit/785b7b6))
|
|
||||||
* **router:** router should not swallow "unhandled" errors ([e5a753e](https://github.com/angular/angular/commit/e5a753e)), closes [#12802](https://github.com/angular/angular/issues/12802)
|
|
||||||
* **router:** throw an error when encounter undefined route ([#12389](https://github.com/angular/angular/issues/12389)) ([77dc1ab](https://github.com/angular/angular/commit/77dc1ab))
|
|
||||||
* **platform-browser:** enableDebugTools should create AngularTools by merging into context.ng ([#12003](https://github.com/angular/angular/issues/12003)) ([b2cf379](https://github.com/angular/angular/commit/b2cf379)), closes [#12002](https://github.com/angular/angular/issues/12002)
|
|
||||||
* **platform-browser:** provide the ability to register global hammer.js events ([768cddb](https://github.com/angular/angular/commit/768cddb)), closes [#12797](https://github.com/angular/angular/issues/12797)
|
|
||||||
* **tsc-wrapped:** harden collector against invalid asts ([#12793](https://github.com/angular/angular/issues/12793)) ([69f87ca](https://github.com/angular/angular/commit/69f87ca))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="2.2.0-rc.0"></a>
|
|
||||||
# [2.2.0-rc.0](https://github.com/angular/angular/compare/2.2.0-beta.1...2.2.0-rc.0) (2016-11-02)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **compiler:** dedupe NgModule declarations, … ([a178bc6](https://github.com/angular/angular/commit/a178bc6))
|
|
||||||
* **compiler:** don’t double bind functions ([e391cac](https://github.com/angular/angular/commit/e391cac))
|
|
||||||
* **compiler:** Don’t throw on empty property bindings ([642c1db](https://github.com/angular/angular/commit/642c1db)), closes [#12583](https://github.com/angular/angular/issues/12583)
|
|
||||||
* **compiler:** support multiple components in a view container ([6fda972](https://github.com/angular/angular/commit/6fda972))
|
|
||||||
* **core:** improve error when multiple components match the same element ([e9fd864](https://github.com/angular/angular/commit/e9fd864)), closes [#7067](https://github.com/angular/angular/issues/7067)
|
|
||||||
* **router:** call data observers when the path changes ([1de04b2](https://github.com/angular/angular/commit/1de04b2))
|
|
||||||
* **router:** CanDeactivate receives a wrong component ([830a780](https://github.com/angular/angular/commit/830a780)), closes [#12592](https://github.com/angular/angular/issues/12592)
|
|
||||||
* **router:** rerun resolvers when url changes ([fe47e6b](https://github.com/angular/angular/commit/fe47e6b)), closes [#12603](https://github.com/angular/angular/issues/12603)
|
|
||||||
* **router:** reset URL to the stable state when a navigation gets canceled ([d509ee0](https://github.com/angular/angular/commit/d509ee0)), closes [#10321](https://github.com/angular/angular/issues/10321)
|
|
||||||
* **router:** routerLink should not prevent default on non-link elements ([8e221b8](https://github.com/angular/angular/commit/8e221b8))
|
|
||||||
* **router:** run navigations serially ([091c390](https://github.com/angular/angular/commit/091c390)), closes [#11754](https://github.com/angular/angular/issues/11754)
|
|
||||||
* **upgrade:** silent bootstrap failures ([fa93fd6](https://github.com/angular/angular/commit/fa93fd6)), closes [#12062](https://github.com/angular/angular/issues/12062)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* **core:** add the find method to QueryList ([7c16ef9](https://github.com/angular/angular/commit/7c16ef9))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="2.1.2"></a>
|
|
||||||
# [2.1.2](https://github.com/angular/angular/compare/2.1.1...2.1.2) (2016-10-27)
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **compiler:** don't access view local variables nor pipes in host expressions ([#12396](https://github.com/angular/angular/issues/12396)) ([867494a](https://github.com/angular/angular/commit/867494a)), closes [#12004](https://github.com/angular/angular/issues/12004) [#12071](https://github.com/angular/angular/issues/12071)
|
|
||||||
* **compiler:** walk third party modules ([#12453](https://github.com/angular/angular/issues/12453)) ([a838aba](https://github.com/angular/angular/commit/a838aba)), closes [#11889](https://github.com/angular/angular/issues/11889) [#12428](https://github.com/angular/angular/issues/12428)
|
|
||||||
* **compiler:** remove double exports of template_ast ([7742ec0](https://github.com/angular/angular/commit/7742ec0))
|
|
||||||
* **compiler:** use Maps instead of objects in selector implementation ([d321b0e](https://github.com/angular/angular/commit/d321b0e))
|
|
||||||
* **compiler-cli:** fix types ([ef15364](https://github.com/angular/angular/commit/ef15364))
|
|
||||||
* **compiler-cli:** assert that all pipes and directives are declared by a module ([7221632](https://github.com/angular/angular/commit/7221632))
|
|
||||||
* **http:** overwrite already set xsrf header ([b4265e0](https://github.com/angular/angular/commit/b4265e0))
|
|
||||||
* **router:** add a test to make sure canDeactivate guards are called for aux routes ([fc60fa7](https://github.com/angular/angular/commit/fc60fa7)), closes [#11345](https://github.com/angular/angular/issues/11345)
|
|
||||||
* **router:** canDeactivate guards are not triggered for componentless routes ([b741853](https://github.com/angular/angular/commit/b741853)), closes [#12375](https://github.com/angular/angular/issues/12375)
|
|
||||||
* **router:** change router not to deactivate aux routes when navigating from a componentless routes ([52a853e](https://github.com/angular/angular/commit/52a853e))
|
|
||||||
* **router:** disallow component routes with named outlets ([8f2fa0f](https://github.com/angular/angular/commit/8f2fa0f)), closes [#11208](https://github.com/angular/angular/issues/11208) [#11082](https://github.com/angular/angular/issues/11082)
|
|
||||||
* **router:** preserve resolve data ([6ccbfd4](https://github.com/angular/angular/commit/6ccbfd4)), closes [#12306](https://github.com/angular/angular/issues/12306)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="2.2.0-beta.1"></a>
|
|
||||||
# [2.2.0-beta.1](https://github.com/angular/angular/compare/2.2.0-beta.0...2.2.0-beta.1) (2016-10-27)
|
|
||||||
|
|
||||||
### Code Refactoring
|
|
||||||
|
|
||||||
* **upgrade:** re-export the new static upgrade APIs on new entry ([a26dd28](https://github.com/angular/angular/commit/a26dd28))
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* **router:** export routerLinkActive w/ isActive property ([c9f58cf](https://github.com/angular/angular/commit/c9f58cf))
|
|
||||||
|
|
||||||
|
|
||||||
### BREAKING CHANGES (only for beta version users)
|
|
||||||
|
|
||||||
* upgrade: Four newly added APIs in 2.2.0-beta:
|
|
||||||
downgradeComponent, downgradeInjectable, UpgradeComponent, and UpgradeModule are no longer exported by @angular/upgrade.
|
|
||||||
Import these from @angular/upgrade/static instead.
|
|
||||||
|
|
||||||
|
|
||||||
Note: The 2.2.0-beta.1 release also contains all the changes present in the 2.1.2 release.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# [2.1.1](https://github.com/angular/angular/compare/2.1.0...2.1.1) (2016-10-20)
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **compiler:** generate aot code for animation trigger output events ([#12291](https://github.com/angular/angular/issues/12291)) ([6e5f8b5](https://github.com/angular/angular/commit/6e5f8b5)), closes [#11707](https://github.com/angular/angular/issues/11707)
|
|
||||||
* **compiler:** don't redeclare a var in the same scope ([#12386](https://github.com/angular/angular/issues/12386)) ([cca4a5c](https://github.com/angular/angular/commit/cca4a5c))
|
|
||||||
* **core:** fix decorator default values ([bd1dcb5](https://github.com/angular/angular/commit/bd1dcb5))
|
|
||||||
* **core:** fix property decorators ([3993279](https://github.com/angular/angular/commit/3993279)), closes [#12224](https://github.com/angular/angular/issues/12224)
|
|
||||||
* **http:** make normalizeMethodName optimizer-compatible. ([#12370](https://github.com/angular/angular/issues/12370)) ([8409b65](https://github.com/angular/angular/commit/8409b65))
|
|
||||||
* **router:** correctly export filter operator in es5 ([#12286](https://github.com/angular/angular/issues/12286)) ([27d7677](https://github.com/angular/angular/commit/27d7677))
|
|
||||||
* **router:** do not update primary route if only secondary outlet is given ([#11797](https://github.com/angular/angular/issues/11797)) ([da5fc69](https://github.com/angular/angular/commit/da5fc69))
|
|
||||||
* **router:** fix lazy loading triggered by redirects from wildcard routes ([5ae6915](https://github.com/angular/angular/commit/5ae6915)), closes [#12183](https://github.com/angular/angular/issues/12183)
|
|
||||||
* **router:** module loader should start compiling modules when stubbedModules are set ([#11742](https://github.com/angular/angular/issues/11742)) ([b44b6ef](https://github.com/angular/angular/commit/b44b6ef))
|
|
||||||
|
|
||||||
|
|
||||||
### Performance Improvements
|
|
||||||
|
|
||||||
* **common:** optimize NgSwitch default case ([fdf4309](https://github.com/angular/angular/commit/fdf4309))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="2.2.0-beta.0"></a>
|
|
||||||
# [2.2.0-beta.0](https://github.com/angular/angular/compare/2.1.0...2.2.0-beta.0) (2016-10-20)
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* **common:** support narrow forms for month and weekdays in DatePipe ([#12297](https://github.com/angular/angular/issues/12297)) ([f77ab6a](https://github.com/angular/angular/commit/f77ab6a)), closes [#12294](https://github.com/angular/angular/issues/12294)
|
|
||||||
* **forms:** add hasError and getError to AbstractControlDirective ([#11985](https://github.com/angular/angular/issues/11985)) ([592f40a](https://github.com/angular/angular/commit/592f40a)), closes [#7255](https://github.com/angular/angular/issues/7255)
|
|
||||||
* **forms:** add ng-pending CSS class during async validation ([#11243](https://github.com/angular/angular/issues/11243)) ([97bc971](https://github.com/angular/angular/commit/97bc971)), closes [#10336](https://github.com/angular/angular/issues/10336)
|
|
||||||
* **forms:** Added emitEvent to AbstractControl methods ([#11949](https://github.com/angular/angular/issues/11949)) ([b9fc090](https://github.com/angular/angular/commit/b9fc090))
|
|
||||||
* **forms:** make 'parent' a public property of 'AbstractControl' ([#11855](https://github.com/angular/angular/issues/11855)) ([445e592](https://github.com/angular/angular/commit/445e592))
|
|
||||||
* **forms:** Validator.pattern accepts a RegExp ([#12323](https://github.com/angular/angular/issues/12323)) ([bf60418](https://github.com/angular/angular/commit/bf60418))
|
|
||||||
* **upgrade:** add support for AoT compiled upgrade applications ([d6791ff](https://github.com/angular/angular/commit/d6791ff)), closes [#12239](https://github.com/angular/angular/issues/12239)
|
|
||||||
* **router:** add support for ng1/ng2 migration ([#12160](https://github.com/angular/angular/issues/12160)) ([8b9ab44](https://github.com/angular/angular/commit/8b9ab44))
|
|
||||||
|
|
||||||
Note: The 2.2.0-beta.0 release also contains all the changes present in the 2.1.1 release.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="2.1.0"></a>
|
|
||||||
# [2.1.0 incremental-metamorphosis](https://github.com/angular/angular/compare/2.1.0-rc.0...2.1.0) (2016-10-12)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* **compiler:** allow whitespace as `<ng-content>` content ([#12225](https://github.com/angular/angular/issues/12225)) ([df1718d](https://github.com/angular/angular/commit/df1718d))
|
|
||||||
* **compiler:** interpolation expressions report the correct offset ([#12125](https://github.com/angular/angular/issues/12125)) ([d641c36](https://github.com/angular/angular/commit/d641c36))
|
|
||||||
* **compiler:** properly shim `:host:before` and `:host(:before)` ([#12171](https://github.com/angular/angular/issues/12171)) ([aa92512](https://github.com/angular/angular/commit/aa92512)), closes [#12165](https://github.com/angular/angular/issues/12165)
|
|
||||||
* **compiler:** validate `@HostBinding` name ([#12139](https://github.com/angular/angular/issues/12139)) ([13ecc14](https://github.com/angular/angular/commit/13ecc14))
|
|
||||||
* **compiler-cli:** don't clone static symbols when simplifying annotation metadata ([#12158](https://github.com/angular/angular/issues/12158)) ([8c477b2](https://github.com/angular/angular/commit/8c477b2))
|
|
||||||
* **compiler-cli:** remove peerDependency on [@angular](https://github.com/angular)/platform-server ([#12122](https://github.com/angular/angular/issues/12122)) ([71b7654](https://github.com/angular/angular/commit/71b7654))
|
|
||||||
* **compiler-cli:** remove unused parse5 dependency from package.json ([eaaec69](https://github.com/angular/angular/commit/eaaec69))
|
|
||||||
* **forms:** allow optional fields with pattern and minlength validators ([#12147](https://github.com/angular/angular/issues/12147)) ([d22eeb7](https://github.com/angular/angular/commit/d22eeb7))
|
|
||||||
* **forms:** properly validate blank strings with minlength ([#12091](https://github.com/angular/angular/issues/12091)) ([f50c1da](https://github.com/angular/angular/commit/f50c1da))
|
|
||||||
* **http:** fix Headers initialization from Headers and Object ([#12106](https://github.com/angular/angular/issues/12106)) ([f4566f8](https://github.com/angular/angular/commit/f4566f8))
|
|
||||||
* **http:** Headers.append should append to the list ([a67c067](https://github.com/angular/angular/commit/a67c067))
|
|
||||||
* **platform-browser-dynamic:** mark platformBrowserDynamic as stable API ([#12154](https://github.com/angular/angular/issues/12154)) ([bcef5ef](https://github.com/angular/angular/commit/bcef5ef))
|
|
||||||
* **router:** improve error message ([#12102](https://github.com/angular/angular/issues/12102)) ([e06303a](https://github.com/angular/angular/commit/e06303a))
|
|
||||||
* **router:** parent resolve should complete before merging resolved data ([1681e4f](https://github.com/angular/angular/commit/1681e4f)), closes [#12032](https://github.com/angular/angular/issues/12032)
|
|
||||||
* **router:** wildcards routes should support lazy loading ([40b92dd](https://github.com/angular/angular/commit/40b92dd)), closes [#12024](https://github.com/angular/angular/issues/12024)
|
|
||||||
* **upgrade:** allow compilerOptions in bootstrap ([#10575](https://github.com/angular/angular/issues/10575)) ([5effc33](https://github.com/angular/angular/commit/5effc33))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="2.1.0-rc.0"></a>
|
|
||||||
# [2.1.0-rc.0](https://github.com/angular/angular/compare/2.1.0-beta.0...2.1.0-rc.0) (2016-10-05)
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* **animations:** provide aliases for `:enter` and `:leave` transitions ([#11991](https://github.com/angular/angular/issues/11991)) ([e884f48](https://github.com/angular/angular/commit/e884f48))
|
|
||||||
|
|
||||||
Note: 2.1.0-rc.0 release also contains all the changes present in the 2.0.2 release.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="2.1.0-beta.0"></a>
|
|
||||||
# [2.1.0-beta.0](https://github.com/angular/angular/compare/2.0.0...2.1.0-beta.0) (2016-09-23)
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* **router:** add router preloader to optimistically preload routes ([5a84982](https://github.com/angular/angular/commit/5a84982))
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
* **router:** update the router not to reset router state when updating root component ([#11799](https://github.com/angular/angular/issues/11799)) ([31dce72](https://github.com/angular/angular/commit/31dce72))
|
|
||||||
|
|
||||||
Note: 2.1.0-beta.0 release also contains all the changes present in the 2.0.1 release.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="2.0.2"></a>
|
<a name="2.0.2"></a>
|
||||||
## [2.0.2](https://github.com/angular/angular/compare/2.0.1...2.0.2) (2016-10-05)
|
## [2.0.2](https://github.com/angular/angular/compare/2.0.1...2.0.2) (2016-10-05)
|
||||||
|
|
||||||
@ -911,18 +7,18 @@ Note: 2.1.0-beta.0 release also contains all the changes present in the 2.0.1 re
|
|||||||
* **common:** correctly removes styles on IE ([#11953](https://github.com/angular/angular/pull/11953)), closes [#7916](https://github.com/angular/angular/issues/7916)
|
* **common:** correctly removes styles on IE ([#11953](https://github.com/angular/angular/pull/11953)), closes [#7916](https://github.com/angular/angular/issues/7916)
|
||||||
* **compiler:** do not embed templateUrl in view factories in non-debug mode. ([#11818](https://github.com/angular/angular/issues/11818)) ([51e1994](https://github.com/angular/angular/commit/51e1994)), closes [#11117](https://github.com/angular/angular/issues/11117)
|
* **compiler:** do not embed templateUrl in view factories in non-debug mode. ([#11818](https://github.com/angular/angular/issues/11818)) ([51e1994](https://github.com/angular/angular/commit/51e1994)), closes [#11117](https://github.com/angular/angular/issues/11117)
|
||||||
* **compiler:** move detection of unsafe properties for binding to ElementSchemaRegistry ([#11378](https://github.com/angular/angular/issues/11378)) ([5911c3b](https://github.com/angular/angular/commit/5911c3b))
|
* **compiler:** move detection of unsafe properties for binding to ElementSchemaRegistry ([#11378](https://github.com/angular/angular/issues/11378)) ([5911c3b](https://github.com/angular/angular/commit/5911c3b))
|
||||||
* **compiler:** fix `:host(tag)` and `:host-context(tag)` ([a6bb84e0](https://github.com/angular/angular/commit/a6bb84e02b7579f8d957ef6ba5b10d83482ed756)), closes [#11972](https://github.com/angular/angular/issues/11972)
|
|
||||||
* **compiler:** fix attribute selectors in :host and :host-context ([#12056](https://github.com/angular/angular/issues/12056)) ([6f7ed32](https://github.com/angular/angular/commit/6f7ed32)), closes [#11917](https://github.com/angular/angular/issues/11917)
|
|
||||||
* **compiler:** support `@page` and `@document` CSS rules ([#11878](https://github.com/angular/angular/issues/11878)) ([c99ef49](https://github.com/angular/angular/commit/c99ef49)), closes [#11860](https://github.com/angular/angular/issues/11860)
|
|
||||||
* **compiler:** support `[attr="value with space"]` ([bd012ef](https://github.com/angular/angular/commit/bd012ef)), closes [#6249](https://github.com/angular/angular/issues/6249)
|
|
||||||
* **compiler:** support quoted attribute values ([7395400](https://github.com/angular/angular/commit/7395400)), closes [#6085](https://github.com/angular/angular/issues/6085)
|
|
||||||
* **compiler:** fix `<x>` ctype names ([7578d85](https://github.com/angular/angular/commit/7578d85)), closes [#12000](https://github.com/angular/angular/issues/12000)
|
|
||||||
* **compiler-cli:** allow ReflectorHost passed as argument to CodeGenerator#create ([#11951](https://github.com/angular/angular/issues/11951)) ([826c98e](https://github.com/angular/angular/commit/826c98e))
|
|
||||||
* **forms:** properly validate empty strings with patterns ([#11450](https://github.com/angular/angular/issues/11450)) ([e00de0c](https://github.com/angular/angular/commit/e00de0c))
|
* **forms:** properly validate empty strings with patterns ([#11450](https://github.com/angular/angular/issues/11450)) ([e00de0c](https://github.com/angular/angular/commit/e00de0c))
|
||||||
* **http:** preserve case of the first init, `set()` or `append()` ([#12023](https://github.com/angular/angular/issues/12023)) ([adb17fe](https://github.com/angular/angular/commit/adb17fe)), closes [#11624](https://github.com/angular/angular/issues/11624)
|
* **http:** preserve case of the first init, `set()` or `append()` ([#12023](https://github.com/angular/angular/issues/12023)) ([adb17fe](https://github.com/angular/angular/commit/adb17fe)), closes [#11624](https://github.com/angular/angular/issues/11624)
|
||||||
* **http:** remove url params if provided value is null or undefined ([#11990](https://github.com/angular/angular/issues/11990)) ([9cc0a4e](https://github.com/angular/angular/commit/9cc0a4e))
|
* **compiler-cli:** allow ReflectorHost passed as argument to CodeGenerator#create ([#11951](https://github.com/angular/angular/issues/11951)) ([826c98e](https://github.com/angular/angular/commit/826c98e))
|
||||||
* **router:** do not reset the router state when updating the component ([#11867](https://github.com/angular/angular/issues/11867)) ([cf750e1](https://github.com/angular/angular/commit/cf750e1))
|
* **router:** do not reset the router state when updating the component ([#11867](https://github.com/angular/angular/issues/11867)) ([cf750e1](https://github.com/angular/angular/commit/cf750e1))
|
||||||
|
* **compiler:** fix `:host(tag)` and `:host-context(tag)` ([a6bb84e0](https://github.com/angular/angular/commit/a6bb84e02b7579f8d957ef6ba5b10d83482ed756)), closes [#11972](https://github.com/angular/angular/issues/11972)
|
||||||
|
* **compiler:** fix attribute selectors in :host and :host-context ([#12056](https://github.com/angular/angular/issues/12056)) ([6f7ed32](https://github.com/angular/angular/commit/6f7ed32)), closes [#11917](https://github.com/angular/angular/issues/11917)
|
||||||
|
* **compiler:** support `[@page](https://github.com/page)` and `[@document](https://github.com/document)` CSS rules ([#11878](https://github.com/angular/angular/issues/11878)) ([c99ef49](https://github.com/angular/angular/commit/c99ef49)), closes [#11860](https://github.com/angular/angular/issues/11860)
|
||||||
|
* **compiler:** support `[attr="value with space"]` ([bd012ef](https://github.com/angular/angular/commit/bd012ef)), closes [#6249](https://github.com/angular/angular/issues/6249)
|
||||||
|
* **compiler:** support quoted attribute values ([7395400](https://github.com/angular/angular/commit/7395400)), closes [#6085](https://github.com/angular/angular/issues/6085)
|
||||||
* **upgrade:** bind optional properties when upgrading from ng1 ([#11411](https://github.com/angular/angular/issues/11411)) ([0851238](https://github.com/angular/angular/commit/0851238)), closes [#10181](https://github.com/angular/angular/issues/10181)
|
* **upgrade:** bind optional properties when upgrading from ng1 ([#11411](https://github.com/angular/angular/issues/11411)) ([0851238](https://github.com/angular/angular/commit/0851238)), closes [#10181](https://github.com/angular/angular/issues/10181)
|
||||||
|
* **http:** change a behavior when a param value is null or undefined ([#11990](https://github.com/angular/angular/issues/11990)) ([9cc0a4e](https://github.com/angular/angular/commit/9cc0a4e))
|
||||||
|
* **compiler:** fix `<x>` ctype names ([7578d85](https://github.com/angular/angular/commit/7578d85)), closes [#12000](https://github.com/angular/angular/issues/12000)
|
||||||
|
|
||||||
|
|
||||||
<a name="2.0.1"></a>
|
<a name="2.0.1"></a>
|
||||||
@ -945,7 +41,7 @@ Note: 2.1.0-beta.0 release also contains all the changes present in the 2.0.1 re
|
|||||||
|
|
||||||
|
|
||||||
<a name="2.0.0"></a>
|
<a name="2.0.0"></a>
|
||||||
# [2.0.0 proprioception-reinforcement](https://github.com/angular/angular/compare/2.0.0-rc.7...2.0.0) (2016-09-14)
|
# [2.0.0](https://github.com/angular/angular/compare/2.0.0-rc.7...2.0.0) (2016-09-14)
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
@ -1466,7 +562,7 @@ prefix using `animate-` must now be preixed using `bind-animate-`.
|
|||||||
* core:
|
* core:
|
||||||
- `ApplicationRef.dispose` is deprecated. Destroy the module that was
|
- `ApplicationRef.dispose` is deprecated. Destroy the module that was
|
||||||
created during bootstrap instead by calling `NgModuleRef.destroy`.
|
created during bootstrap instead by calling `NgModuleRef.destroy`.
|
||||||
- `ApplicationRef.registerDisposeListener` is deprecated.
|
- `AplicationRef.registerDisposeListener` is deprecated.
|
||||||
Use the `ngOnDestroy` lifecycle hook for providers or
|
Use the `ngOnDestroy` lifecycle hook for providers or
|
||||||
`NgModuleRef.onDestroy` instead.
|
`NgModuleRef.onDestroy` instead.
|
||||||
- `disposePlatform` is deprecated. Use `destroyPlatform` instead.
|
- `disposePlatform` is deprecated. Use `destroyPlatform` instead.
|
||||||
@ -2155,7 +1251,7 @@ The likelihood of anyone actually depending on this property is very low.
|
|||||||
### Known Issues
|
### Known Issues
|
||||||
|
|
||||||
*** SECURITY WARNING ***
|
*** SECURITY WARNING ***
|
||||||
Contextual escaping is not yet implemented in Angular. This will be fixed in the upcoming RC.
|
Contextual escaping is not yet implemented in Angular 2. This will be fixed in the upcoming RC.
|
||||||
In the meantime make sure to correctly escape all values that go into the DOM.
|
In the meantime make sure to correctly escape all values that go into the DOM.
|
||||||
*** SECURITY WARNING ***
|
*** SECURITY WARNING ***
|
||||||
|
|
||||||
@ -2518,7 +1614,7 @@ it('should wait for returned promises', async(() => {
|
|||||||
* **payload:** increase payload size limit temporarily ([28e657d](https://github.com/angular/angular/commit/28e657d))
|
* **payload:** increase payload size limit temporarily ([28e657d](https://github.com/angular/angular/commit/28e657d))
|
||||||
* **RouterLink:** ignore optional parameters when checking for active routes ([5e2bc5c](https://github.com/angular/angular/commit/5e2bc5c)), closes [#6459](https://github.com/angular/angular/issues/6459) [#7834](https://github.com/angular/angular/issues/7834)
|
* **RouterLink:** ignore optional parameters when checking for active routes ([5e2bc5c](https://github.com/angular/angular/commit/5e2bc5c)), closes [#6459](https://github.com/angular/angular/issues/6459) [#7834](https://github.com/angular/angular/issues/7834)
|
||||||
* **select:** set value individually from ngModel ([e1e44a9](https://github.com/angular/angular/commit/e1e44a9)), closes [#7975](https://github.com/angular/angular/issues/7975) [#7978](https://github.com/angular/angular/issues/7978)
|
* **select:** set value individually from ngModel ([e1e44a9](https://github.com/angular/angular/commit/e1e44a9)), closes [#7975](https://github.com/angular/angular/issues/7975) [#7978](https://github.com/angular/angular/issues/7978)
|
||||||
* **upgrade:** make upgradeAdapter upgrade AngularJS components correctly ([247964a](https://github.com/angular/angular/commit/247964a)), closes [#7951](https://github.com/angular/angular/issues/7951)
|
* **upgrade:** make upgradeAdapter upgrade angular 1 components correctly ([247964a](https://github.com/angular/angular/commit/247964a)), closes [#7951](https://github.com/angular/angular/issues/7951)
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
@ -3095,7 +2191,7 @@ setBaseTestProviders(TEST_BROWSER_PLATFORM_PROVIDERS,
|
|||||||
* `angular2.umd.js` -> `angular2-all.umd.js`
|
* `angular2.umd.js` -> `angular2-all.umd.js`
|
||||||
* `angular2-testing.umd.js` -> `angular2-all-testing.umd.js`
|
* `angular2-testing.umd.js` -> `angular2-all-testing.umd.js`
|
||||||
|
|
||||||
* RxJS used to be bundled with Angular code and this is not the case
|
* RxJS used to be bundled with Angular 2 code and this is not the case
|
||||||
any more. RxJS needs to be loaded explicitly.
|
any more. RxJS needs to be loaded explicitly.
|
||||||
|
|
||||||
* Previously `angular2.js`, `angular2.min.js` and `angular2.dev.js` bundles
|
* Previously `angular2.js`, `angular2.min.js` and `angular2.dev.js` bundles
|
||||||
@ -4262,8 +3358,8 @@ class HelloCmp implements OnInit {
|
|||||||
* **docs:** export type info for var and const exports ([9262727](https://github.com/angular/angular/commit/9262727)), closes [#3700](https://github.com/angular/angular/issues/3700)
|
* **docs:** export type info for var and const exports ([9262727](https://github.com/angular/angular/commit/9262727)), closes [#3700](https://github.com/angular/angular/issues/3700)
|
||||||
* **facade:** add maximum method for ListWrapper ([b5c4d8b](https://github.com/angular/angular/commit/b5c4d8b))
|
* **facade:** add maximum method for ListWrapper ([b5c4d8b](https://github.com/angular/angular/commit/b5c4d8b))
|
||||||
* **http:** xhr error listener invokes throw on EventEmitter ([f2d3bdb](https://github.com/angular/angular/commit/f2d3bdb)), closes [#2667](https://github.com/angular/angular/issues/2667)
|
* **http:** xhr error listener invokes throw on EventEmitter ([f2d3bdb](https://github.com/angular/angular/commit/f2d3bdb)), closes [#2667](https://github.com/angular/angular/issues/2667)
|
||||||
* **router:** add AngularJS router ([fde026a](https://github.com/angular/angular/commit/fde026a))
|
* **router:** add angular 1.x router ([fde026a](https://github.com/angular/angular/commit/fde026a))
|
||||||
* **router:** add reuse support for AngularJS router ([ddb62fe](https://github.com/angular/angular/commit/ddb62fe)), closes [#3698](https://github.com/angular/angular/issues/3698)
|
* **router:** add reuse support for angular 1.x router ([ddb62fe](https://github.com/angular/angular/commit/ddb62fe)), closes [#3698](https://github.com/angular/angular/issues/3698)
|
||||||
* **url_resolver:** Allow a developer to customize their package prefix ([9cc1cd2](https://github.com/angular/angular/commit/9cc1cd2)), closes [#3794](https://github.com/angular/angular/issues/3794)
|
* **url_resolver:** Allow a developer to customize their package prefix ([9cc1cd2](https://github.com/angular/angular/commit/9cc1cd2)), closes [#3794](https://github.com/angular/angular/issues/3794)
|
||||||
|
|
||||||
|
|
||||||
|
29
COMMITTER.md
@ -1,4 +1,4 @@
|
|||||||
# Pushing changes into the Angular tree
|
# Pushing changes into the Angular 2 tree
|
||||||
|
|
||||||
Please see [Using git with Angular repositories](https://docs.google.com/document/d/1h8nijFSaa1jG_UE8v4WP7glh5qOUXnYtAtJh_gwOQHI/edit)
|
Please see [Using git with Angular repositories](https://docs.google.com/document/d/1h8nijFSaa1jG_UE8v4WP7glh5qOUXnYtAtJh_gwOQHI/edit)
|
||||||
for details about how we maintain a linear commit history, and the rules for committing.
|
for details about how we maintain a linear commit history, and the rules for committing.
|
||||||
@ -6,16 +6,29 @@ for details about how we maintain a linear commit history, and the rules for com
|
|||||||
As a contributor, just read the instructions in [CONTRIBUTING.md](CONTRIBUTING.md) and send a pull request.
|
As a contributor, just read the instructions in [CONTRIBUTING.md](CONTRIBUTING.md) and send a pull request.
|
||||||
Someone with committer access will do the rest.
|
Someone with committer access will do the rest.
|
||||||
|
|
||||||
# Change approvals
|
## The `PR: merge` label and `presubmit-*` branches
|
||||||
|
|
||||||
Change approvals in our monorepo are managed via [pullapprove.com](https://about.pullapprove.com/) and are configured via the `.pullapprove.yaml` file.
|
We have automated the process for merging pull requests into master. Our goal is to minimize the disruption for
|
||||||
|
Angular committers and also prevent breakages on master.
|
||||||
|
|
||||||
|
When a PR has `pr_state: LGTM` and is ready to merge, you should add the `pr_action: merge` label.
|
||||||
|
Currently (late 2015), we need to ensure that each PR will cleanly merge into the Google-internal version control,
|
||||||
|
so the caretaker reviews the changes manually.
|
||||||
|
|
||||||
# Merging
|
After this review, the caretaker adds `zomg_admin: do_merge` which is restricted to admins only.
|
||||||
|
A robot running as [mary-poppins](https://github.com/mary-poppins)
|
||||||
|
is notified that the label was added by an authorized person,
|
||||||
|
and will create a new branch in the angular project, using the convention `presubmit-{username}-pr-{number}`.
|
||||||
|
|
||||||
Once a change has all the approvals either the last approver or the PR author (if PR author has the project collaborator status) should mark the PR with "PR: merge" label.
|
(Note: if the automation fails, committers can instead push the commits to a branch following this naming scheme.)
|
||||||
This signals to the caretaker that the PR should be merged.
|
|
||||||
|
|
||||||
# Who is the Caretaker?
|
When a Travis build succeeds for a presubmit branch named following the convention,
|
||||||
|
Travis will re-base the commits, merge to master, and close the PR automatically.
|
||||||
|
|
||||||
See [this explanation](https://twitter.com/IgorMinar/status/799365744806854656).
|
Finally, after merge `mary-poppins` removes the presubmit branch.
|
||||||
|
|
||||||
|
## Administration
|
||||||
|
|
||||||
|
The list of users who can trigger a merge by adding the `zomg_admin: do_merge` label is stored in our appengine app datastore.
|
||||||
|
Edit the contents of the [CoreTeamMember Table](
|
||||||
|
https://console.developers.google.com/project/angular2-automation/datastore/query?queryType=KindQuery&namespace=&kind=CoreTeamMember)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Contributing to Angular
|
# Contributing to Angular 2
|
||||||
|
|
||||||
We would love for you to contribute to Angular and help make it even better than it is
|
We would love for you to contribute to Angular 2 and help make it even better than it is
|
||||||
today! As a contributor, here are the guidelines we would like you to follow:
|
today! As a contributor, here are the guidelines we would like you to follow:
|
||||||
|
|
||||||
- [Code of Conduct](#coc)
|
- [Code of Conduct](#coc)
|
||||||
@ -17,26 +17,17 @@ Help us keep Angular open and inclusive. Please read and follow our [Code of Con
|
|||||||
|
|
||||||
## <a name="question"></a> Got a Question or Problem?
|
## <a name="question"></a> Got a Question or Problem?
|
||||||
|
|
||||||
Please, do not open issues for the general support questions as we want to keep GitHub issues for bug reports and feature requests. You've got much better chances of getting your question answered on [StackOverflow](https://stackoverflow.com/questions/tagged/angular) where the questions should be tagged with tag `angular`.
|
If you have questions about how to *use* Angular, please direct them to the [Google Group][angular-group]
|
||||||
|
discussion list or [StackOverflow][stackoverflow]. Please note that the Angular team's capacity to answer usage questions is limited. We are also available on [Gitter][gitter].
|
||||||
|
|
||||||
StackOverflow is a much better place to ask questions since:
|
## <a name="issue"></a> Found an Issue?
|
||||||
|
|
||||||
- there are thousands of people willing to help on StackOverflow
|
|
||||||
- questions and answers stay available for public viewing so your question / answer might help someone else
|
|
||||||
- StackOverflow's voting system assures that the best answers are prominently visible.
|
|
||||||
|
|
||||||
To save your and our time we will be systematically closing all the issues that are requests for general support and redirecting people to StackOverflow.
|
|
||||||
|
|
||||||
If you would like to chat about the question in real-time, you can reach out via [our gitter channel][gitter].
|
|
||||||
|
|
||||||
## <a name="issue"></a> Found a Bug?
|
|
||||||
If you find a bug in the source code, you can help us by
|
If you find a bug in the source code, you can help us by
|
||||||
[submitting an issue](#submit-issue) to our [GitHub Repository][github]. Even better, you can
|
[submitting an issue](#submit-issue) to our [GitHub Repository][github]. Even better, you can
|
||||||
[submit a Pull Request](#submit-pr) with a fix.
|
[submit a Pull Request](#submit-pr) with a fix.
|
||||||
|
|
||||||
## <a name="feature"></a> Missing a Feature?
|
## <a name="feature"></a> Want a Feature?
|
||||||
You can *request* a new feature by [submitting an issue](#submit-issue) to our GitHub
|
You can *request* a new feature by [submitting an issue](#submit-issue) to our [GitHub
|
||||||
Repository. If you would like to *implement* a new feature, please submit an issue with
|
Repository][github]. If you would like to *implement* a new feature, please submit an issue with
|
||||||
a proposal for your work first, to be sure that we can use it.
|
a proposal for your work first, to be sure that we can use it.
|
||||||
Please consider what kind of change it is:
|
Please consider what kind of change it is:
|
||||||
|
|
||||||
@ -48,22 +39,24 @@ and help you to craft the change so that it is successfully accepted into the pr
|
|||||||
## <a name="submit"></a> Submission Guidelines
|
## <a name="submit"></a> Submission Guidelines
|
||||||
|
|
||||||
### <a name="submit-issue"></a> Submitting an Issue
|
### <a name="submit-issue"></a> Submitting an Issue
|
||||||
|
Before you submit an issue, search the archive, maybe your question was already answered.
|
||||||
|
|
||||||
Before you submit an issue, please search the issue tracker, maybe an issue for your problem already exists and the discussion might inform you of workarounds readily available.
|
If your issue appears to be a bug, and hasn't been reported, open a new issue.
|
||||||
|
Help us to maximize the effort we can spend fixing issues and adding new
|
||||||
|
features, by not reporting duplicate issues. Providing the following information will increase the
|
||||||
|
chances of your issue being dealt with quickly:
|
||||||
|
|
||||||
We want to fix all the issues as soon as possible, but before fixing a bug we need to reproduce and confirm it. In order to reproduce bugs we will systematically ask you to provide a minimal reproduction scenario using http://plnkr.co. Having a live, reproducible scenario gives us wealth of important information without going back & forth to you with additional questions like:
|
* **Overview of the Issue** - if an error is being thrown a non-minified stack trace helps
|
||||||
|
* **Angular Version** - what version of Angular is affected (e.g. 2.0.0-alpha.53)
|
||||||
|
* **Motivation for or Use Case** - explain what are you trying to do and why the current behavior is a bug for you
|
||||||
|
* **Browsers and Operating System** - is this a problem with all browsers?
|
||||||
|
* **Reproduce the Error** - provide a live example (using [Plunker][plunker],
|
||||||
|
[JSFiddle][jsfiddle] or [Runnable][runnable]) or a unambiguous set of steps
|
||||||
|
* **Related Issues** - has a similar issue been reported before?
|
||||||
|
* **Suggest a Fix** - if you can't fix the bug yourself, perhaps you can point to what might be
|
||||||
|
causing the problem (line of code or commit)
|
||||||
|
|
||||||
- version of Angular used
|
You can file new issues by providing the above information [here](https://github.com/angular/angular/issues/new).
|
||||||
- 3rd-party libraries and their versions
|
|
||||||
- and most importantly - a use-case that fails
|
|
||||||
|
|
||||||
A minimal reproduce scenario using http://plnkr.co/ allows us to quickly confirm a bug (or point out coding problem) as well as confirm that we are fixing the right problem. If plunker is not a suitable way to demonstrate the problem (for example for issues related to our npm packaging), please create a standalone git repository demonstrating the problem.
|
|
||||||
|
|
||||||
We will be insisting on a minimal reproduce scenario in order to save maintainers time and ultimately be able to fix more bugs. Interestingly, from our experience users often find coding problems themselves while preparing a minimal plunk. We understand that sometimes it might be hard to extract essentials bits of code from a larger code-base but we really need to isolate the problem before we can fix it.
|
|
||||||
|
|
||||||
Unfortunately we are not able to investigate / fix bugs without a minimal reproduction, so if we don't hear back from you we are going to close an issue that don't have enough info to be reproduced.
|
|
||||||
|
|
||||||
You can file new issues by filling out our [new issue form](https://github.com/angular/angular/issues/new).
|
|
||||||
|
|
||||||
|
|
||||||
### <a name="submit-pr"></a> Submitting a Pull Request (PR)
|
### <a name="submit-pr"></a> Submitting a Pull Request (PR)
|
||||||
@ -101,7 +94,7 @@ Before you submit your Pull Request (PR) consider the following guidelines:
|
|||||||
* In GitHub, send a pull request to `angular:master`.
|
* In GitHub, send a pull request to `angular:master`.
|
||||||
* If we suggest changes then:
|
* If we suggest changes then:
|
||||||
* Make the required updates.
|
* Make the required updates.
|
||||||
* Re-run the Angular test suites to ensure tests are still passing.
|
* Re-run the Angular 2 test suites to ensure tests are still passing.
|
||||||
* Rebase your branch and force push to your GitHub repository (this will update your Pull Request):
|
* Rebase your branch and force push to your GitHub repository (this will update your Pull Request):
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
@ -191,44 +184,21 @@ If the commit reverts a previous commit, it should begin with `revert: `, follow
|
|||||||
### Type
|
### Type
|
||||||
Must be one of the following:
|
Must be one of the following:
|
||||||
|
|
||||||
* **build**: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
|
|
||||||
* **ci**: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
|
|
||||||
* **docs**: Documentation only changes
|
|
||||||
* **feat**: A new feature
|
* **feat**: A new feature
|
||||||
* **fix**: A bug fix
|
* **fix**: A bug fix
|
||||||
* **perf**: A code change that improves performance
|
* **docs**: Documentation only changes
|
||||||
* **refactor**: A code change that neither fixes a bug nor adds a feature
|
|
||||||
* **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing
|
* **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing
|
||||||
semi-colons, etc)
|
semi-colons, etc)
|
||||||
|
* **refactor**: A code change that neither fixes a bug nor adds a feature
|
||||||
|
* **perf**: A code change that improves performance
|
||||||
* **test**: Adding missing tests or correcting existing tests
|
* **test**: Adding missing tests or correcting existing tests
|
||||||
|
* **build**: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
|
||||||
|
* **ci**: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
|
||||||
|
* **chore**: Other changes that don't modify `src` or `test` files
|
||||||
|
|
||||||
### Scope
|
### Scope
|
||||||
The scope should be the name of the npm package affected (as perceived by person reading changelog generated from commit messages.
|
The scope could be anything specifying place of the commit change. For example
|
||||||
|
`Compiler`, `ElementInjector`, etc.
|
||||||
The following is the list of supported scopes:
|
|
||||||
|
|
||||||
* **common**
|
|
||||||
* **compiler**
|
|
||||||
* **compiler-cli**
|
|
||||||
* **core**
|
|
||||||
* **forms**
|
|
||||||
* **http**
|
|
||||||
* **language-service**
|
|
||||||
* **platform-browser**
|
|
||||||
* **platform-browser-dynamic**
|
|
||||||
* **platform-server**
|
|
||||||
* **platform-webworker**
|
|
||||||
* **platform-webworker-dynamic**
|
|
||||||
* **router**
|
|
||||||
* **upgrade**
|
|
||||||
* **tsc-wrapped**
|
|
||||||
|
|
||||||
There is currently few exception to the "use package name" rule:
|
|
||||||
|
|
||||||
* **packaging**: used for changes that change the npm package layout in all of our packages, e.g. public path changes, package.json changes done to all packages, d.ts file/format changes, changes to bundles, etc.
|
|
||||||
* **changelog**: used for updating the release notes in CHANGELOG.md
|
|
||||||
* **aio**: used for angular.io changes within the /angular.io directory of the repo
|
|
||||||
* none/empty string: useful for `style`, `test` and `refactor` changes that are done across all packages (e.g. `style: add missing semicolons`)
|
|
||||||
|
|
||||||
### Subject
|
### Subject
|
||||||
The subject contains succinct description of the change:
|
The subject contains succinct description of the change:
|
||||||
@ -267,7 +237,7 @@ changes to be accepted, the CLA must be signed. It's a quick process, we promise
|
|||||||
[github]: https://github.com/angular/angular
|
[github]: https://github.com/angular/angular
|
||||||
[gitter]: https://gitter.im/angular/angular
|
[gitter]: https://gitter.im/angular/angular
|
||||||
[individual-cla]: http://code.google.com/legal/individual-cla-v1.0.html
|
[individual-cla]: http://code.google.com/legal/individual-cla-v1.0.html
|
||||||
[js-style-guide]: https://google.github.io/styleguide/jsguide.html
|
[js-style-guide]: https://google.github.io/styleguide/javascriptguide.xml
|
||||||
[jsfiddle]: http://jsfiddle.net
|
[jsfiddle]: http://jsfiddle.net
|
||||||
[plunker]: http://plnkr.co/edit
|
[plunker]: http://plnkr.co/edit
|
||||||
[runnable]: http://runnable.com
|
[runnable]: http://runnable.com
|
||||||
|
60
DEVELOPER.md
@ -1,6 +1,6 @@
|
|||||||
# Building and Testing Angular
|
# Building and Testing Angular 2 for JS
|
||||||
|
|
||||||
This document describes how to set up your development environment to build and test Angular.
|
This document describes how to set up your development environment to build and test Angular 2 JS version.
|
||||||
It also explains the basic mechanics of using `git`, `node`, and `npm`.
|
It also explains the basic mechanics of using `git`, `node`, and `npm`.
|
||||||
|
|
||||||
* [Prerequisite Software](#prerequisite-software)
|
* [Prerequisite Software](#prerequisite-software)
|
||||||
@ -71,24 +71,9 @@ particular `gulp` and `protractor` commands. If you prefer, you can drop this pa
|
|||||||
Since global installs can become stale, and required versions can vary by project, we avoid their
|
Since global installs can become stale, and required versions can vary by project, we avoid their
|
||||||
use in these instructions.
|
use in these instructions.
|
||||||
|
|
||||||
*Option 2*: globally installing the package `npm-run` by running `npm install -g npm-run`
|
*Option 2*: defining a bash alias like `alias nbin='PATH=$(npm bin):$PATH'` as detailed in this
|
||||||
(you might need to prefix this command with `sudo`). You will then be able to run locally installed
|
|
||||||
package scripts by invoking: e.g., `npm-run gulp build`
|
|
||||||
(see [npm-run project page](https://github.com/timoxley/npm-run) for more details).
|
|
||||||
|
|
||||||
|
|
||||||
*Option 3*: defining a bash alias like `alias nbin='PATH=$(npm bin):$PATH'` as detailed in this
|
|
||||||
[Stackoverflow answer](http://stackoverflow.com/questions/9679932/how-to-use-package-installed-locally-in-node-modules/15157360#15157360) and used like this: e.g., `nbin gulp build`.
|
[Stackoverflow answer](http://stackoverflow.com/questions/9679932/how-to-use-package-installed-locally-in-node-modules/15157360#15157360) and used like this: e.g., `nbin gulp build`.
|
||||||
|
|
||||||
## Installing Bower Modules
|
|
||||||
|
|
||||||
Now run `bower` to install additional dependencies:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
# Install other Angular project dependencies (bower.json)
|
|
||||||
bower install
|
|
||||||
```
|
|
||||||
|
|
||||||
## Windows only
|
## Windows only
|
||||||
|
|
||||||
In order to create the right symlinks, run **as administrator**:
|
In order to create the right symlinks, run **as administrator**:
|
||||||
@ -139,10 +124,9 @@ If you happen to modify the public API of Angular, API golden files must be upda
|
|||||||
$ gulp public-api:update
|
$ gulp public-api:update
|
||||||
```
|
```
|
||||||
|
|
||||||
Note: The command `gulp public-api:enforce` fails when the API doesn't match the golden files. Make sure to rebuild
|
Note: The command `./test.sh tools` fails when the API doesn't match the golden files.
|
||||||
the project before trying to verify after an API change.
|
|
||||||
|
|
||||||
## <a name="clang-format"></a> Formatting your source code
|
## Formatting your source code
|
||||||
|
|
||||||
Angular uses [clang-format](http://clang.llvm.org/docs/ClangFormat.html) to format the source code. If the source code
|
Angular uses [clang-format](http://clang.llvm.org/docs/ClangFormat.html) to format the source code. If the source code
|
||||||
is not properly formatted, the CI will fail and the PR can not be merged.
|
is not properly formatted, the CI will fail and the PR can not be merged.
|
||||||
@ -153,38 +137,4 @@ You can automatically format your code by running:
|
|||||||
$ gulp format
|
$ gulp format
|
||||||
```
|
```
|
||||||
|
|
||||||
## Linting/verifying your source code
|
|
||||||
|
|
||||||
You can check that your code is properly formatted and adheres to coding style by running:
|
|
||||||
|
|
||||||
``` shell
|
|
||||||
$ gulp lint
|
|
||||||
```
|
|
||||||
|
|
||||||
## Publishing snapshot builds
|
|
||||||
|
|
||||||
When the `master` branch successfully builds on Travis, it automatically publishes build artifacts
|
|
||||||
to repositories in the Angular org, eg. the `@angular/core` package is published to
|
|
||||||
http://github.com/angular/core-builds.
|
|
||||||
The ES2015 version of Angular is published to a different branch in these repos, for example
|
|
||||||
http://github.com/angular/core-builds#master-es2015
|
|
||||||
|
|
||||||
You may find that your un-merged change needs some validation from external participants.
|
|
||||||
Rather than requiring them to pull your Pull Request and build Angular locally, you can
|
|
||||||
publish the `*-builds` snapshots just like our Travis build does.
|
|
||||||
|
|
||||||
First time, you need to create the github repositories:
|
|
||||||
|
|
||||||
``` shell
|
|
||||||
$ export TOKEN=[get one from https://github.com/settings/tokens]
|
|
||||||
$ CREATE_REPOS=1 ./scripts/publish/publish-build-artifacts.sh [github username]
|
|
||||||
```
|
|
||||||
|
|
||||||
For subsequent snapshots, just run
|
|
||||||
|
|
||||||
``` shell
|
|
||||||
$ ./scripts/publish/publish-build-artifacts.sh [github username]
|
|
||||||
```
|
|
||||||
|
|
||||||
The script will publish the build snapshot to a branch with the same name as your current branch,
|
|
||||||
and create it if it doesn't exist.
|
|
||||||
|
2
LICENSE
@ -1,6 +1,6 @@
|
|||||||
The MIT License
|
The MIT License
|
||||||
|
|
||||||
Copyright (c) 2014-2017 Google, Inc. http://angular.io
|
Copyright (c) 2014-2016 Google, Inc. http://angular.io
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Naming Conventions in Angular
|
Naming Conventions in Angular2
|
||||||
---
|
---
|
||||||
|
|
||||||
In general Angular should follow TypeScript naming conventions.
|
In general Angular2 should follow TypeScript naming conventions.
|
||||||
See: https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines
|
See: https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines
|
||||||
|
|
||||||
|
|
||||||
|
11
README.md
@ -11,7 +11,10 @@
|
|||||||
Angular
|
Angular
|
||||||
=========
|
=========
|
||||||
|
|
||||||
Angular is a development platform for building mobile and desktop web applications using Typescript/JavaScript (JS) and other languages.
|
Angular is a development platform for building mobile and desktop web applications. This is the
|
||||||
|
repository for [Angular 2][ng2] Typescript/JavaScript (JS).
|
||||||
|
|
||||||
|
Angular2 for [Dart][dart] can be found at [dart-lang/angular2][ng2dart].
|
||||||
|
|
||||||
|
|
||||||
## Quickstart
|
## Quickstart
|
||||||
@ -26,5 +29,9 @@ guidelines for [contributing][contributing] and then check out one of our issues
|
|||||||
|
|
||||||
[browserstack]: https://www.browserstack.com/
|
[browserstack]: https://www.browserstack.com/
|
||||||
[contributing]: http://github.com/angular/angular/blob/master/CONTRIBUTING.md
|
[contributing]: http://github.com/angular/angular/blob/master/CONTRIBUTING.md
|
||||||
|
[dart]: http://www.dartlang.org
|
||||||
[quickstart]: https://angular.io/docs/ts/latest/quickstart.html
|
[quickstart]: https://angular.io/docs/ts/latest/quickstart.html
|
||||||
[ng]: http://angular.io
|
[ng2]: http://angular.io
|
||||||
|
[ngDart]: http://angulardart.org
|
||||||
|
[ngJS]: http://angularjs.org
|
||||||
|
[ng2dart]: https://github.com/dart-lang/angular2
|
||||||
|
@ -1,62 +0,0 @@
|
|||||||
# Saved Responses for Angular's Issue Tracker
|
|
||||||
|
|
||||||
The following are canned responses that the Angular team should use to close issues on our issue tracker that fall into the listed resolution categories.
|
|
||||||
|
|
||||||
Since GitHub currently doesn't allow us to have a repository-wide or organization-wide list of [saved replies](https://help.github.com/articles/working-with-saved-replies/), these replies need to be maintained by individual team members. Since the responses can be modified in the future, all responses are versioned to simplify the process of keeping the responses up to date.
|
|
||||||
|
|
||||||
|
|
||||||
## Angular: Already Fixed (v1)
|
|
||||||
```
|
|
||||||
Thanks for reporting this issue. Luckily it has already been fixed in one of the recent releases. Please update to the most recent version to resolve the problem.
|
|
||||||
|
|
||||||
If after upgrade the problem still exists in your application please open a new issue and provide a plunker reproducing the problem and describing the difference between the expected and current behavior. You can use this plunker template: http://plnkr.co/edit/tpl:AvJOMERrnz94ekVua0u5?p=catalogue
|
|
||||||
```
|
|
||||||
|
|
||||||
## Angular: Don't Understand (v1)
|
|
||||||
```
|
|
||||||
I'm sorry but we don't understand the problem you are reporting.
|
|
||||||
|
|
||||||
If the problem still exists please open a new issue and provide a plunker reproducing the problem and describing the difference between the expected and current behavior. You can use this plunker template: http://plnkr.co/edit/tpl:AvJOMERrnz94ekVua0u5?p=catalogue
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## Angular: Duplicate (v1)
|
|
||||||
```
|
|
||||||
Thanks for reporting this issue. However this issue is a duplicate of an existing issue #<ISSUE_NUMBER>. Please subscribe to that issue for future updates.
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## Angular: Insufficient Information Provided (v1)
|
|
||||||
```
|
|
||||||
Thanks for reporting this issue. However, you didn't provide sufficient information for us to understand and reproduce the problem. Please check out [our submission guidelines](https://github.com/angular/angular/blob/master/CONTRIBUTING.md#-submitting-an-issue) to understand why we can't act on issues that are lacking important information.
|
|
||||||
|
|
||||||
If the problem still persists, please file a new issue and ensure you provide all of the required information when filling out the issue template.
|
|
||||||
```
|
|
||||||
|
|
||||||
## Angular: Issue Outside of Angular (v1)
|
|
||||||
```
|
|
||||||
I'm sorry but this issue is not caused by Angular. Please contact the author(s) of project <PROJECT NAME> or file issue on their issue tracker.
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## Angular: Non-reproducible (v1)
|
|
||||||
```
|
|
||||||
I'm sorry but we can't reproduce the problem following the instructions you provided.
|
|
||||||
|
|
||||||
If the problem still exists please open a new issue following [our submission guidelines](https://github.com/angular/angular/blob/master/CONTRIBUTING.md#-submitting-an-issue).
|
|
||||||
```
|
|
||||||
|
|
||||||
## Angular: Obsolete (v1)
|
|
||||||
```
|
|
||||||
Thanks for reporting this issue. This issue is now obsolete due to changes in the recent releases. Please update to the most recent Angular version.
|
|
||||||
|
|
||||||
If the problem still persists, please file a new issue and ensure you provide the version of Angular affected and include the steps to reproduce the problem when filling out the issue template.
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## Angular: Support Request (v1)
|
|
||||||
```
|
|
||||||
Hello, we reviewed this issue and determined that it doesn't fall into the bug report or feature request category. This issue tracker is not suitable for support requests, please repost your issue on [StackOverflow](http://stackoverflow.com/) using tag `angular`.
|
|
||||||
|
|
||||||
If you are wondering why we don't resolve support issues via the issue tracker, please [check out this explanation](https://github.com/angular/angular/blob/master/CONTRIBUTING.md#-got-a-question-or-problem).
|
|
||||||
```
|
|
2
TOOLS.md
@ -1,4 +1,4 @@
|
|||||||
# Developer Tools for Angular
|
# Developer Tools for Angular 2
|
||||||
|
|
||||||
Here you will find a collection of tools and tips for keeping your application
|
Here you will find a collection of tools and tips for keeping your application
|
||||||
perform well and contain fewer bugs.
|
perform well and contain fewer bugs.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Triage Process and Github Labels for Angular
|
# Triage Process and Github Labels for Angular 2
|
||||||
|
|
||||||
This document describes how the Angular team uses labels and milestones
|
This document describes how the Angular team uses labels and milestones
|
||||||
to triage issues on github. The basic idea of the process is that
|
to triage issues on github. The basic idea of the new process is that
|
||||||
caretaker only assigns a component and type (bug, feature) label. The
|
caretaker only assigns a component and type (bug, feature) label. The
|
||||||
owner of the component than is in full control of how the issues should
|
owner of the component than is in full control of how the issues should
|
||||||
be triaged further.
|
be triaged further.
|
||||||
@ -24,9 +24,8 @@ with it.
|
|||||||
* `comp: forms`: `@kara`
|
* `comp: forms`: `@kara`
|
||||||
* `comp: http`: `@jeffbcross`
|
* `comp: http`: `@jeffbcross`
|
||||||
* `comp: i18n`: `@vicb`
|
* `comp: i18n`: `@vicb`
|
||||||
* `comp: language service`: `@chuckjaz`
|
|
||||||
* `comp: metadata-extractor`: `@chuckjaz`
|
* `comp: metadata-extractor`: `@chuckjaz`
|
||||||
* `comp: router`: `@vicb`
|
* `comp: router`: `@vsavkin`
|
||||||
* `comp: testing`: `@juliemr`
|
* `comp: testing`: `@juliemr`
|
||||||
* `comp: upgrade`: `@mhevery`
|
* `comp: upgrade`: `@mhevery`
|
||||||
* `comp: web-worker`: `@vicb`
|
* `comp: web-worker`: `@vicb`
|
||||||
@ -36,7 +35,7 @@ There are few components which are cross-cutting. They don't have
|
|||||||
a clear location in the source tree. We will treat them as a component
|
a clear location in the source tree. We will treat them as a component
|
||||||
even thought no specific source tree is associated with them.
|
even thought no specific source tree is associated with them.
|
||||||
|
|
||||||
* `comp: docs`: `@naomiblack`
|
* `comp: documentation`: `@naomiblack`
|
||||||
* `comp: packaging`: `@IgorMinar`
|
* `comp: packaging`: `@IgorMinar`
|
||||||
* `comp: performance`: `@tbosch`
|
* `comp: performance`: `@tbosch`
|
||||||
* `comp: security`: `@IgorMinar`
|
* `comp: security`: `@IgorMinar`
|
||||||
@ -54,11 +53,11 @@ What kind of problem is this?
|
|||||||
|
|
||||||
## Caretaker Triage Process
|
## Caretaker Triage Process
|
||||||
|
|
||||||
It is the caretaker's responsibility to assign `comp: *` to each new
|
It is the caretaker's responsibility to assign `comp: *` and `type: *`
|
||||||
issue as they come in. The reason why we limit the responsibility of the
|
to each new issue as they come in. The reason why we limit the
|
||||||
caretaker to this one label is that it is likely that without domain
|
responsibility of the caretaker to these two labels is that it is
|
||||||
knowledge the caretaker could mislabel issues or lack knowledge of
|
unlikely that without domain knowledge the caretaker could add any
|
||||||
duplicate issues.
|
additional labels of value.
|
||||||
|
|
||||||
|
|
||||||
## Component's owner Triage Process
|
## Component's owner Triage Process
|
||||||
@ -69,37 +68,11 @@ process for their component.
|
|||||||
It will be up to the component owner to determine the order in which the
|
It will be up to the component owner to determine the order in which the
|
||||||
issues within the component will be resolved.
|
issues within the component will be resolved.
|
||||||
|
|
||||||
Several owners have adopted the issue categorization based on
|
|
||||||
[user pain](http://www.lostgarden.com/2008/05/improving-bug-triage-with-user-pain.html)
|
|
||||||
used by AngularJS. In this system every issue is assigned frequency and
|
|
||||||
severity based on which the total user pain score is calculated.
|
|
||||||
|
|
||||||
Following is the definition of various frequency and severity levels:
|
|
||||||
|
|
||||||
1. `freq(score): *` – How often does this issue come up? How many developers does this affect?
|
|
||||||
* low (1) - obscure issue affecting a handful of developers
|
|
||||||
* moderate (2) - impacts auxiliary usage patterns, only small number of applications are affected
|
|
||||||
* high (3) - impacts primary usage patterns, affecting most Angular apps
|
|
||||||
* critical (4) - impacts all Angular apps
|
|
||||||
1. `severity(score): *` - How bad is the issue?
|
|
||||||
* inconvenience (1) - causes ugly/boilerplate code in apps
|
|
||||||
* confusing (2) - unexpected or inconsistent behavior; hard-to-debug
|
|
||||||
* broken expected use (3) - it's hard or impossible for a developer using Angular to accomplish something that Angular should be able to do
|
|
||||||
* memory leak (4)
|
|
||||||
* regression (5) - functionality that used to work no longer works in a new release due to an unintentional change
|
|
||||||
* security issue (6)
|
|
||||||
|
|
||||||
|
|
||||||
These criteria are then used to calculate a "user pain" score as follows:
|
|
||||||
|
|
||||||
`pain = severity × frequency`
|
|
||||||
|
|
||||||
|
|
||||||
### Assigning Issues to Milestones
|
### Assigning Issues to Milestones
|
||||||
|
|
||||||
Any issue that is being worked on must have:
|
Any issue that is being worked on must have:
|
||||||
|
|
||||||
* An `Assignee`: The person doing the work.
|
* An `assignee`: The person doing the work.
|
||||||
* A `Milestone`: When we expect to complete this work.
|
* A `Milestone`: When we expect to complete this work.
|
||||||
|
|
||||||
We aim to only have at most three milestones open at a time:
|
We aim to only have at most three milestones open at a time:
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"projects": {
|
|
||||||
"staging": "aio-staging"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,31 +0,0 @@
|
|||||||
# Site
|
|
||||||
|
|
||||||
This project was generated with [angular-cli](https://github.com/angular/angular-cli) version 1.0.0-beta.26.
|
|
||||||
|
|
||||||
## Development server
|
|
||||||
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
|
|
||||||
|
|
||||||
## Code scaffolding
|
|
||||||
|
|
||||||
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive/pipe/service/class/module`.
|
|
||||||
|
|
||||||
## Build
|
|
||||||
|
|
||||||
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build.
|
|
||||||
|
|
||||||
## Running unit tests
|
|
||||||
|
|
||||||
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
||||||
|
|
||||||
## Running end-to-end tests
|
|
||||||
|
|
||||||
Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
|
|
||||||
Before running the tests make sure you are serving the app via `ng serve`.
|
|
||||||
|
|
||||||
## Deploying to GitHub Pages
|
|
||||||
|
|
||||||
Run `ng github-pages:deploy` to deploy to GitHub Pages.
|
|
||||||
|
|
||||||
## Further help
|
|
||||||
|
|
||||||
To get more help on the `angular-cli` use `ng help` or go check out the [Angular-CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
|
|
@ -1,59 +0,0 @@
|
|||||||
{
|
|
||||||
"project": {
|
|
||||||
"version": "1.0.0-beta.26",
|
|
||||||
"name": "site"
|
|
||||||
},
|
|
||||||
"apps": [
|
|
||||||
{
|
|
||||||
"root": "src",
|
|
||||||
"outDir": "dist",
|
|
||||||
"assets": [
|
|
||||||
"assets",
|
|
||||||
"favicon.ico"
|
|
||||||
],
|
|
||||||
"index": "index.html",
|
|
||||||
"main": "main.ts",
|
|
||||||
"polyfills": "polyfills.ts",
|
|
||||||
"test": "test.ts",
|
|
||||||
"tsconfig": "tsconfig.json",
|
|
||||||
"prefix": "app",
|
|
||||||
"styles": [
|
|
||||||
"styles.scss"
|
|
||||||
],
|
|
||||||
"scripts": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"environments": {
|
|
||||||
"source": "environments/environment.ts",
|
|
||||||
"dev": "environments/environment.ts",
|
|
||||||
"prod": "environments/environment.prod.ts"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"e2e": {
|
|
||||||
"protractor": {
|
|
||||||
"config": "./protractor.conf.js"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"test": {
|
|
||||||
"karma": {
|
|
||||||
"config": "./karma.conf.js"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"styleExt": "css",
|
|
||||||
"prefixInterfaces": false,
|
|
||||||
"inline": {
|
|
||||||
"style": false,
|
|
||||||
"template": false
|
|
||||||
},
|
|
||||||
"spec": {
|
|
||||||
"class": false,
|
|
||||||
"component": true,
|
|
||||||
"directive": true,
|
|
||||||
"module": false,
|
|
||||||
"pipe": true,
|
|
||||||
"service": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"rules": {
|
|
||||||
".read": "auth != null",
|
|
||||||
".write": "auth != null"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
import { SitePage } from './app.po';
|
|
||||||
|
|
||||||
describe('site App', function() {
|
|
||||||
let page: SitePage;
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
page = new SitePage();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should display message saying app works', () => {
|
|
||||||
page.navigateTo();
|
|
||||||
expect(page.getParagraphText()).toEqual('home-page works!');
|
|
||||||
});
|
|
||||||
});
|
|
@ -1,11 +0,0 @@
|
|||||||
import { browser, element, by } from 'protractor';
|
|
||||||
|
|
||||||
export class SitePage {
|
|
||||||
navigateTo() {
|
|
||||||
return browser.get('/');
|
|
||||||
}
|
|
||||||
|
|
||||||
getParagraphText() {
|
|
||||||
return element(by.css('app-home-page p')).getText();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"compileOnSave": false,
|
|
||||||
"compilerOptions": {
|
|
||||||
"declaration": false,
|
|
||||||
"emitDecoratorMetadata": true,
|
|
||||||
"experimentalDecorators": true,
|
|
||||||
"module": "commonjs",
|
|
||||||
"moduleResolution": "node",
|
|
||||||
"outDir": "../dist/out-tsc-e2e",
|
|
||||||
"sourceMap": true,
|
|
||||||
"target": "es5",
|
|
||||||
"typeRoots": [
|
|
||||||
"../node_modules/@types"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
{
|
|
||||||
"database": {
|
|
||||||
"rules": "database.rules.json"
|
|
||||||
},
|
|
||||||
"hosting": {
|
|
||||||
"public": "dist",
|
|
||||||
"rewrites": [
|
|
||||||
{
|
|
||||||
"source": "**",
|
|
||||||
"destination": "/index.html"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
// Karma configuration file, see link for more information
|
|
||||||
// https://karma-runner.github.io/0.13/config/configuration-file.html
|
|
||||||
module.exports = function (config) {
|
|
||||||
config.set({
|
|
||||||
basePath: '',
|
|
||||||
frameworks: ['jasmine', 'angular-cli'],
|
|
||||||
plugins: [
|
|
||||||
require('karma-jasmine'),
|
|
||||||
require('karma-chrome-launcher'),
|
|
||||||
require('karma-remap-istanbul'),
|
|
||||||
require('angular-cli/plugins/karma')
|
|
||||||
],
|
|
||||||
files: [
|
|
||||||
{ pattern: './src/test.ts', watched: false }
|
|
||||||
],
|
|
||||||
preprocessors: {
|
|
||||||
'./src/test.ts': ['angular-cli']
|
|
||||||
},
|
|
||||||
mime: {
|
|
||||||
'text/x-typescript': ['ts','tsx']
|
|
||||||
},
|
|
||||||
remapIstanbulReporter: {
|
|
||||||
reports: {
|
|
||||||
html: 'coverage',
|
|
||||||
lcovonly: './coverage/coverage.lcov'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
angularCli: {
|
|
||||||
config: './angular-cli.json',
|
|
||||||
environment: 'dev'
|
|
||||||
},
|
|
||||||
reporters: config.angularCli && config.angularCli.codeCoverage
|
|
||||||
? ['progress', 'karma-remap-istanbul']
|
|
||||||
: ['progress'],
|
|
||||||
port: 9876,
|
|
||||||
colors: true,
|
|
||||||
logLevel: config.LOG_INFO,
|
|
||||||
autoWatch: true,
|
|
||||||
browsers: ['Chrome'],
|
|
||||||
singleRun: false
|
|
||||||
});
|
|
||||||
};
|
|
@ -1,56 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "angular.io",
|
|
||||||
"version": "0.0.0",
|
|
||||||
"main": "index.js",
|
|
||||||
"repository": "git@github.com:angular/angular.git",
|
|
||||||
"author": "Angular",
|
|
||||||
"license": "MIT",
|
|
||||||
"angular-cli": {},
|
|
||||||
"scripts": {
|
|
||||||
"ng": "ng",
|
|
||||||
"start": "ng serve",
|
|
||||||
"build": "ng build",
|
|
||||||
"lint": "tslint \"src/**/*.ts\" --project src/tsconfig.json --type-check && tslint \"e2e/**/*.ts\" --project e2e/tsconfig.json --type-check",
|
|
||||||
"test": "ng test",
|
|
||||||
"pree2e": "webdriver-manager update --standalone false --gecko false",
|
|
||||||
"e2e": "protractor",
|
|
||||||
"deploy-staging": "firebase use staging --token \"$FIREBASE_TOKEN\" && yarn run ~~deploy",
|
|
||||||
"pre~~deploy": "ng build --prod",
|
|
||||||
"~~deploy": "firebase deploy --message \"Commit: $TRAVIS_COMMIT\" --non-interactive --token \"$FIREBASE_TOKEN\""
|
|
||||||
},
|
|
||||||
"private": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@angular/common": "^2.3.1",
|
|
||||||
"@angular/compiler": "^2.3.1",
|
|
||||||
"@angular/core": "^2.3.1",
|
|
||||||
"@angular/forms": "^2.3.1",
|
|
||||||
"@angular/http": "^2.3.1",
|
|
||||||
"@angular/material": "^2.0.0-beta.1",
|
|
||||||
"@angular/platform-browser": "^2.3.1",
|
|
||||||
"@angular/platform-browser-dynamic": "^2.3.1",
|
|
||||||
"@angular/router": "^3.3.1",
|
|
||||||
"core-js": "^2.4.1",
|
|
||||||
"rxjs": "^5.0.1",
|
|
||||||
"ts-helpers": "^1.1.1",
|
|
||||||
"zone.js": "^0.7.2"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@angular/compiler-cli": "^2.3.1",
|
|
||||||
"@types/jasmine": "2.5.38",
|
|
||||||
"@types/node": "^6.0.42",
|
|
||||||
"angular-cli": "1.0.0-beta.26",
|
|
||||||
"codelyzer": "~2.0.0-beta.1",
|
|
||||||
"firebase-tools": "^3.2.1",
|
|
||||||
"jasmine-core": "2.5.2",
|
|
||||||
"jasmine-spec-reporter": "2.5.0",
|
|
||||||
"karma": "1.2.0",
|
|
||||||
"karma-chrome-launcher": "^2.0.0",
|
|
||||||
"karma-cli": "^1.0.1",
|
|
||||||
"karma-jasmine": "^1.0.2",
|
|
||||||
"karma-remap-istanbul": "^0.2.1",
|
|
||||||
"protractor": "~4.0.13",
|
|
||||||
"ts-node": "1.2.1",
|
|
||||||
"tslint": "^4.3.0",
|
|
||||||
"typescript": "2.0.10"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,39 +0,0 @@
|
|||||||
// Protractor configuration file, see link for more information
|
|
||||||
// https://github.com/angular/protractor/blob/master/lib/config.ts
|
|
||||||
|
|
||||||
/*global jasmine */
|
|
||||||
var SpecReporter = require('jasmine-spec-reporter');
|
|
||||||
|
|
||||||
exports.config = {
|
|
||||||
allScriptsTimeout: 11000,
|
|
||||||
getPageTimeout: 30000,
|
|
||||||
specs: [
|
|
||||||
'./e2e/**/*.e2e-spec.ts'
|
|
||||||
],
|
|
||||||
capabilities: {
|
|
||||||
'browserName': 'chrome'
|
|
||||||
},
|
|
||||||
directConnect: true,
|
|
||||||
baseUrl: 'http://localhost:4200/',
|
|
||||||
framework: 'jasmine2',
|
|
||||||
jasmineNodeOpts: {
|
|
||||||
showColors: true,
|
|
||||||
defaultTimeoutInterval: 30000,
|
|
||||||
print: function() {}
|
|
||||||
},
|
|
||||||
useAllAngular2AppRoots: true,
|
|
||||||
beforeLaunch: function() {
|
|
||||||
require('ts-node').register({
|
|
||||||
project: 'e2e'
|
|
||||||
});
|
|
||||||
},
|
|
||||||
onPrepare: function() {
|
|
||||||
jasmine.getEnv().addReporter(new SpecReporter());
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
if (process.env.TRAVIS) {
|
|
||||||
exports.config.capabilities.chromeOptions = {
|
|
||||||
binary: process.env.CHROME_BIN
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,7 +0,0 @@
|
|||||||
<md-toolbar color="primary" class="app-toolbar">
|
|
||||||
<span>Angular</span>
|
|
||||||
|
|
||||||
</md-toolbar>
|
|
||||||
<section class="app-content">
|
|
||||||
<router-outlet></router-outlet>
|
|
||||||
</section>
|
|
@ -1,38 +0,0 @@
|
|||||||
// /* tslint:disable:no-unused-variable */
|
|
||||||
|
|
||||||
// import { TestBed, async } from '@angular/core/testing';
|
|
||||||
// import { AppComponent } from './app.component';
|
|
||||||
|
|
||||||
describe('AppComponent', () => {
|
|
||||||
// beforeEach(() => {
|
|
||||||
// TestBed.configureTestingModule({
|
|
||||||
// declarations: [
|
|
||||||
// AppComponent
|
|
||||||
// ],
|
|
||||||
// });
|
|
||||||
// TestBed.compileComponents();
|
|
||||||
// });
|
|
||||||
it('should work', () => {
|
|
||||||
expect(true).toBe(true);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// it('should create the app', async(() => {
|
|
||||||
// const fixture = TestBed.createComponent(AppComponent);
|
|
||||||
// const app = fixture.debugElement.componentInstance;
|
|
||||||
// expect(app).toBeTruthy();
|
|
||||||
// }));
|
|
||||||
|
|
||||||
// it(`should have as title 'app works!'`, async(() => {
|
|
||||||
// const fixture = TestBed.createComponent(AppComponent);
|
|
||||||
// const app = fixture.debugElement.componentInstance;
|
|
||||||
// expect(app.title).toEqual('app works!');
|
|
||||||
// }));
|
|
||||||
|
|
||||||
// it('should render title in a h1 tag', async(() => {
|
|
||||||
// const fixture = TestBed.createComponent(AppComponent);
|
|
||||||
// fixture.detectChanges();
|
|
||||||
// const compiled = fixture.debugElement.nativeElement;
|
|
||||||
// expect(compiled.querySelector('h1').textContent).toContain('app works!');
|
|
||||||
// }));
|
|
||||||
// });
|
|
@ -1,10 +0,0 @@
|
|||||||
import { Component } from '@angular/core';
|
|
||||||
|
|
||||||
@Component({
|
|
||||||
selector: 'app-shell',
|
|
||||||
templateUrl: './app.component.html',
|
|
||||||
styleUrls: ['./app.component.scss']
|
|
||||||
})
|
|
||||||
export class AppComponent {
|
|
||||||
title = 'app works!';
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
import { BrowserModule } from '@angular/platform-browser';
|
|
||||||
import { NgModule } from '@angular/core';
|
|
||||||
import { RouterModule } from '@angular/router';
|
|
||||||
import { AppComponent } from './app.component';
|
|
||||||
import { MdToolbarModule } from '@angular/material/toolbar';
|
|
||||||
|
|
||||||
@NgModule({
|
|
||||||
declarations: [
|
|
||||||
AppComponent
|
|
||||||
],
|
|
||||||
imports: [
|
|
||||||
BrowserModule,
|
|
||||||
MdToolbarModule.forRoot(),
|
|
||||||
RouterModule.forRoot([
|
|
||||||
{ path: '', loadChildren: './home-page/home-page.module#HomePageModule'}
|
|
||||||
])
|
|
||||||
],
|
|
||||||
providers: [],
|
|
||||||
bootstrap: [AppComponent]
|
|
||||||
})
|
|
||||||
export class AppModule { }
|
|
@ -1,3 +0,0 @@
|
|||||||
<p>
|
|
||||||
docs-app works!
|
|
||||||
</p>
|
|
@ -1,28 +0,0 @@
|
|||||||
// /* tslint:disable:no-unused-variable */
|
|
||||||
// import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
|
||||||
// import { By } from '@angular/platform-browser';
|
|
||||||
// import { DebugElement } from '@angular/core';
|
|
||||||
|
|
||||||
// import { DocsAppComponent } from './docs-app.component';
|
|
||||||
|
|
||||||
// describe('DocsAppComponent', () => {
|
|
||||||
// let component: DocsAppComponent;
|
|
||||||
// let fixture: ComponentFixture<DocsAppComponent>;
|
|
||||||
|
|
||||||
// beforeEach(async(() => {
|
|
||||||
// TestBed.configureTestingModule({
|
|
||||||
// declarations: [ DocsAppComponent ]
|
|
||||||
// })
|
|
||||||
// .compileComponents();
|
|
||||||
// }));
|
|
||||||
|
|
||||||
// beforeEach(() => {
|
|
||||||
// fixture = TestBed.createComponent(DocsAppComponent);
|
|
||||||
// component = fixture.componentInstance;
|
|
||||||
// fixture.detectChanges();
|
|
||||||
// });
|
|
||||||
|
|
||||||
// it('should create', () => {
|
|
||||||
// expect(component).toBeTruthy();
|
|
||||||
// });
|
|
||||||
// });
|
|
@ -1,15 +0,0 @@
|
|||||||
import { Component, OnInit } from '@angular/core';
|
|
||||||
|
|
||||||
@Component({
|
|
||||||
selector: 'app-ngio-docs',
|
|
||||||
templateUrl: './docs-app.component.html',
|
|
||||||
styleUrls: ['./docs-app.component.css']
|
|
||||||
})
|
|
||||||
export class DocsAppComponent implements OnInit {
|
|
||||||
|
|
||||||
constructor() { }
|
|
||||||
|
|
||||||
ngOnInit() {
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,19 +0,0 @@
|
|||||||
import { NgModule } from '@angular/core';
|
|
||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import { DocsAppComponent } from './docs-app.component';
|
|
||||||
import { RouterModule } from '@angular/router';
|
|
||||||
|
|
||||||
@NgModule({
|
|
||||||
imports: [
|
|
||||||
CommonModule,
|
|
||||||
RouterModule.forChild([
|
|
||||||
{ path: '', pathMatch: 'full', component: DocsAppComponent}
|
|
||||||
])
|
|
||||||
],
|
|
||||||
declarations: [
|
|
||||||
DocsAppComponent
|
|
||||||
]
|
|
||||||
})
|
|
||||||
export class DocsAppModule {
|
|
||||||
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
<p>
|
|
||||||
home-page works!
|
|
||||||
</p>
|
|
@ -1,28 +0,0 @@
|
|||||||
// /* tslint:disable:no-unused-variable */
|
|
||||||
// import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
|
||||||
// import { By } from '@angular/platform-browser';
|
|
||||||
// import { DebugElement } from '@angular/core';
|
|
||||||
|
|
||||||
// import { HomePageComponent } from './home-page.component';
|
|
||||||
|
|
||||||
// describe('HomePageComponent', () => {
|
|
||||||
// let component: HomePageComponent;
|
|
||||||
// let fixture: ComponentFixture<HomePageComponent>;
|
|
||||||
|
|
||||||
// beforeEach(async(() => {
|
|
||||||
// TestBed.configureTestingModule({
|
|
||||||
// declarations: [ HomePageComponent ]
|
|
||||||
// })
|
|
||||||
// .compileComponents();
|
|
||||||
// }));
|
|
||||||
|
|
||||||
// beforeEach(() => {
|
|
||||||
// fixture = TestBed.createComponent(HomePageComponent);
|
|
||||||
// component = fixture.componentInstance;
|
|
||||||
// fixture.detectChanges();
|
|
||||||
// });
|
|
||||||
|
|
||||||
// it('should create', () => {
|
|
||||||
// expect(component).toBeTruthy();
|
|
||||||
// });
|
|
||||||
// });
|
|
@ -1,15 +0,0 @@
|
|||||||
import { Component, OnInit } from '@angular/core';
|
|
||||||
|
|
||||||
@Component({
|
|
||||||
selector: 'app-home-page',
|
|
||||||
templateUrl: './home-page.component.html',
|
|
||||||
styleUrls: ['./home-page.component.css']
|
|
||||||
})
|
|
||||||
export class HomePageComponent implements OnInit {
|
|
||||||
|
|
||||||
constructor() { }
|
|
||||||
|
|
||||||
ngOnInit() {
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
import { NgModule } from '@angular/core';
|
|
||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import { HomePageComponent } from './home-page.component';
|
|
||||||
import { RouterModule } from '@angular/router';
|
|
||||||
|
|
||||||
@NgModule({
|
|
||||||
imports: [
|
|
||||||
CommonModule,
|
|
||||||
RouterModule.forChild([
|
|
||||||
{ path: '', component: HomePageComponent }
|
|
||||||
])
|
|
||||||
],
|
|
||||||
declarations: [HomePageComponent]
|
|
||||||
})
|
|
||||||
export class HomePageModule { }
|
|
@ -1,239 +0,0 @@
|
|||||||
<header class="hero background-sky"><h1 class="hero-title is-standard-case">DatePipe</h1><span
|
|
||||||
class="badge is-stable">Stable</span>
|
|
||||||
<div class="clear"></div>
|
|
||||||
<h2 class="hero-subtitle">Pipe</h2></header>
|
|
||||||
<article class="l-content-small grid-fluid docs-content">
|
|
||||||
<div layout="row" layout-xs="column" class="row-margin">
|
|
||||||
<div flex="20" flex-xs="100"><h2 class="h2-api-docs">What it does</h2></div>
|
|
||||||
<div flex="80" flex-xs="100"><p>Formats a date according to locale rules.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div layout="row" layout-xs="column" class="row-margin">
|
|
||||||
<div flex="20" flex-xs="100"><h2 class="h2-api-docs">How to use</h2></div>
|
|
||||||
<div flex="80" flex-xs="100"><p><code>date_expression | date[:format]</code></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div layout="row" layout-xs="column" class="row-margin">
|
|
||||||
<div flex="20" flex-xs="100"><h2 class="h2-api-docs">NgModule</h2></div>
|
|
||||||
<div flex="80" flex-xs="100" class="code-links">CommonModule
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div layout="row" layout-xs="column" class="row-margin">
|
|
||||||
<div flex="20" flex-xs="100"><h2 class="h2-api-docs">Description</h2></div>
|
|
||||||
<div flex="80" flex-xs="100" class="code-links"><p>Where:</p>
|
|
||||||
<ul>
|
|
||||||
<li><code>expression</code> is a date object or a number (milliseconds since UTC epoch) or
|
|
||||||
an ISO string
|
|
||||||
(<a href="https://www.w3.org/TR/NOTE-datetime">https://www.w3.org/TR/NOTE-datetime</a>).
|
|
||||||
</li>
|
|
||||||
<li><code>format</code> indicates which date/time components to include. The format can be
|
|
||||||
predifined as
|
|
||||||
shown below or custom as shown in the table.
|
|
||||||
<ul>
|
|
||||||
<li><code>'medium'</code>: equivalent to <code>'yMMMdjms'</code> (e.g.
|
|
||||||
<code>Sep 3, 2010, 12:05:08 PM</code> for <code>en-US</code>)
|
|
||||||
</li>
|
|
||||||
<li><code>'short'</code>: equivalent to <code>'yMdjm'</code> (e.g.
|
|
||||||
<code>9/3/2010, 12:05 PM</code> for <code>en-US</code>)
|
|
||||||
</li>
|
|
||||||
<li><code>'fullDate'</code>: equivalent to <code>'yMMMMEEEEd'</code>
|
|
||||||
(e.g. <code>Friday, September 3, 2010</code> for <code>en-US</code>)
|
|
||||||
</li>
|
|
||||||
<li><code>'longDate'</code>: equivalent to <code>'yMMMMd'</code> (e.g.
|
|
||||||
<code>September 3, 2010</code> for <code>en-US</code>)
|
|
||||||
</li>
|
|
||||||
<li><code>'mediumDate'</code>: equivalent to <code>'yMMMd'</code> (e.g.
|
|
||||||
<code>Sep 3, 2010</code> for <code>en-US</code>)
|
|
||||||
</li>
|
|
||||||
<li><code>'shortDate'</code>: equivalent to <code>'yMd'</code> (e.g.
|
|
||||||
<code>9/3/2010</code> for <code>en-US</code>)
|
|
||||||
</li>
|
|
||||||
<li><code>'mediumTime'</code>: equivalent to <code>'jms'</code> (e.g.
|
|
||||||
<code>12:05:08 PM</code> for <code>en-US</code>)
|
|
||||||
</li>
|
|
||||||
<li><code>'shortTime'</code>: equivalent to <code>'jm'</code> (e.g.
|
|
||||||
<code>12:05 PM</code> for <code>en-US</code>)
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Component</th>
|
|
||||||
<th style="text-align:center">Symbol</th>
|
|
||||||
<th>Narrow</th>
|
|
||||||
<th>Short Form</th>
|
|
||||||
<th>Long Form</th>
|
|
||||||
<th>Numeric</th>
|
|
||||||
<th>2-digit</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>era</td>
|
|
||||||
<td style="text-align:center">G</td>
|
|
||||||
<td>G (A)</td>
|
|
||||||
<td>GGG (AD)</td>
|
|
||||||
<td>GGGG (Anno Domini)</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>year</td>
|
|
||||||
<td style="text-align:center">y</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>y (2015)</td>
|
|
||||||
<td>yy (15)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>month</td>
|
|
||||||
<td style="text-align:center">M</td>
|
|
||||||
<td>L (S)</td>
|
|
||||||
<td>MMM (Sep)</td>
|
|
||||||
<td>MMMM (September)</td>
|
|
||||||
<td>M (9)</td>
|
|
||||||
<td>MM (09)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>day</td>
|
|
||||||
<td style="text-align:center">d</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>d (3)</td>
|
|
||||||
<td>dd (03)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>weekday</td>
|
|
||||||
<td style="text-align:center">E</td>
|
|
||||||
<td>E (S)</td>
|
|
||||||
<td>EEE (Sun)</td>
|
|
||||||
<td>EEEE (Sunday)</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>hour</td>
|
|
||||||
<td style="text-align:center">j</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>j (13)</td>
|
|
||||||
<td>jj (13)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>hour12</td>
|
|
||||||
<td style="text-align:center">h</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>h (1 PM)</td>
|
|
||||||
<td>hh (01 PM)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>hour24</td>
|
|
||||||
<td style="text-align:center">H</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>H (13)</td>
|
|
||||||
<td>HH (13)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>minute</td>
|
|
||||||
<td style="text-align:center">m</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>m (5)</td>
|
|
||||||
<td>mm (05)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>second</td>
|
|
||||||
<td style="text-align:center">s</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>s (9)</td>
|
|
||||||
<td>ss (09)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>timezone</td>
|
|
||||||
<td style="text-align:center">z</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>z (Pacific Standard Time)</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>timezone</td>
|
|
||||||
<td style="text-align:center">Z</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>Z (GMT-8:00)</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>timezone</td>
|
|
||||||
<td style="text-align:center">a</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>a (PM)</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<p>In javascript, only the components specified will be respected (not the ordering,
|
|
||||||
punctuations, ...) and details of the formatting will be dependent on the locale.</p>
|
|
||||||
<p>Timezone of the formatted text will be the local system timezone of the end-user's
|
|
||||||
machine.</p>
|
|
||||||
<p>WARNINGS:</p>
|
|
||||||
<ul>
|
|
||||||
<li>this pipe is marked as pure hence it will not be re-evaluated when the input is mutated.
|
|
||||||
Instead users should treat the date as an immutable object and change the reference when
|
|
||||||
the
|
|
||||||
pipe needs to re-run (this is to avoid reformatting the date on every change detection run
|
|
||||||
which would be an expensive operation).
|
|
||||||
</li>
|
|
||||||
<li>this pipe uses the Internationalization API. Therefore it is only reliable in Chrome and
|
|
||||||
Opera
|
|
||||||
browsers.
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<h3 id="examples">Examples</h3>
|
|
||||||
<p>Assuming <code>dateObj</code> is (year: 2015, month: 6, day: 15, hour: 21, minute: 43,
|
|
||||||
second: 11)
|
|
||||||
in the <em>local</em> time and locale is 'en-US':</p>
|
|
||||||
<code-example format="linenums" language="js">{{ dateObj | date }} // output is 'Jun 15,
|
|
||||||
2015'
|
|
||||||
{{ dateObj | date:'medium' }} // output is 'Jun 15, 2015, 9:43:11 PM'
|
|
||||||
{{ dateObj | date:'shortTime' }} // output is '9:43 PM'
|
|
||||||
{{ dateObj | date:'mmss' }} // output is '43:11'
|
|
||||||
</code-example>
|
|
||||||
<div class="code-example">
|
|
||||||
<code-example language="ts" format="linenums">@Component({
|
|
||||||
selector: 'date-pipe',
|
|
||||||
template: `<div>
|
|
||||||
<p>Today is {{today | date}}</p>
|
|
||||||
<p>Or if you prefer, {{today | date:'fullDate'}}</p>
|
|
||||||
<p>The time is {{today | date:'jmZ'}}</p>
|
|
||||||
</div>`
|
|
||||||
})
|
|
||||||
export class DatePipeComponent {
|
|
||||||
today: number = Date.now();
|
|
||||||
}
|
|
||||||
</code-example>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<p class="location-badge">exported from <a href="index.html">@angular/common/index</a>
|
|
||||||
defined in <a
|
|
||||||
href="https://github.com/angular/angular/tree/2.2.0-beta.1/modules/@angular/common/src/pipes/date_pipe.ts#L12-L116">@angular/common/src/pipes/date_pipe.ts</a>
|
|
||||||
</p></article>
|
|
@ -1,7 +0,0 @@
|
|||||||
<br><br>
|
|
||||||
TODO: api index doc
|
|
||||||
<br><br>
|
|
||||||
In the meantime visit our awesome <a href="docs/api/common/date-pipe">DatePipe API page</a>.
|
|
||||||
<br><br>
|
|
||||||
<br><br>
|
|
||||||
<br><br>
|
|
@ -1 +0,0 @@
|
|||||||
TODO: guide overview doc
|
|
@ -1,7 +0,0 @@
|
|||||||
<br><br>
|
|
||||||
TODO: docs index doc
|
|
||||||
<br><br>
|
|
||||||
<a href="docs/api/">API index page</a>
|
|
||||||
<br><br>
|
|
||||||
<br><br>
|
|
||||||
<br><br>
|
|
@ -1,38 +0,0 @@
|
|||||||
<header class="hero background-sky"><h1 class="hero-title ">Events</h1>
|
|
||||||
<div class="clear"></div>
|
|
||||||
<h2 class="hero-subtitle">Where we'll be presenting</h2>
|
|
||||||
</header>
|
|
||||||
<article class="l-content ">
|
|
||||||
<table class="is-full-width">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Event</th>
|
|
||||||
<th>Location</th>
|
|
||||||
<th>Date</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody><!-- Devoxx Belgium -->
|
|
||||||
<tr>
|
|
||||||
<th><a target="_blank" href="https://www.devoxx.be/">Devoxx Belgium</a></th>
|
|
||||||
<td>Antwerp, Belgium</td>
|
|
||||||
<td>Nov. 7-11, 2016</td>
|
|
||||||
</tr><!-- DEVIntersection -->
|
|
||||||
<tr>
|
|
||||||
<th><a target="_blank" href="https://www.devintersectioneurope.com/">DEVintersection
|
|
||||||
Europe</a></th>
|
|
||||||
<td>Amsterdam, Netherlands</td>
|
|
||||||
<td>Nov 14-16, 2016</td>
|
|
||||||
</tr><!-- dotJS -->
|
|
||||||
<tr>
|
|
||||||
<th><a target="_blank" href="http://www.dotjs.io/">dotJS</a></th>
|
|
||||||
<td>Paris, France</td>
|
|
||||||
<td>Dec. 5, 2016</td>
|
|
||||||
</tr><!-- NG-BE -->
|
|
||||||
<tr>
|
|
||||||
<th><a target="_blank" href="https://ng-be.org/">NG-BE</a></th>
|
|
||||||
<td>Ghent, Belgium</td>
|
|
||||||
<td>Dec. 9, 2016</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</article>
|
|
@ -1,64 +0,0 @@
|
|||||||
<header class="hero background-sky"><h1 class="hero-title ">Features & Benefits</h1>
|
|
||||||
<div class="clear"></div>
|
|
||||||
</header>
|
|
||||||
<article class="l-content ">
|
|
||||||
<div>
|
|
||||||
<div><h2 class="text-headline">Cross Platform</h2>
|
|
||||||
<div class="feature-row">
|
|
||||||
<div class="feature"><h3>Progressive web apps</h3>
|
|
||||||
<p class="text-body">Use modern web platform capabilities to deliver app-like experiences.
|
|
||||||
High performance, offline, and zero-step installation.</p></div>
|
|
||||||
<div class="feature"><h3>Native</h3>
|
|
||||||
<p class="text-body">Build native mobile apps with strategies from Ionic Framework,
|
|
||||||
NativeScript, and React Native.</p></div>
|
|
||||||
<div class="feature"><h3>Desktop</h3>
|
|
||||||
<p class="text-body">Create desktop-installed apps across Mac, Windows, and Linux using
|
|
||||||
the same Angular methods you've learned for the web plus the ability to access native OS
|
|
||||||
APIs.</p></div>
|
|
||||||
</div>
|
|
||||||
<h2 class="text-headline">Speed and Performance</h2>
|
|
||||||
<div class="feature-row">
|
|
||||||
<div class="feature"><h3>Code generation</h3>
|
|
||||||
<p class="text-body">Angular turns your templates into code that's highly optimized for
|
|
||||||
today's JavaScript virtual machines, giving you all the benefits of hand-written code
|
|
||||||
with the productivity of a framework.</p></div>
|
|
||||||
<div class="feature"><h3>Universal</h3>
|
|
||||||
<p class="text-body">Serve the first view of your application on node.js, .NET, PHP, and
|
|
||||||
other servers for near-instant rendering in just HTML and CSS. Also paves the way for
|
|
||||||
sites that optimize for SEO.</p></div>
|
|
||||||
<div class="feature"><h3>Code splitting</h3>
|
|
||||||
<p class="text-body">Angular apps load quickly with the new Component Router, which
|
|
||||||
delivers automatic code-splitting so users only load code required to render the view
|
|
||||||
they request.</p></div>
|
|
||||||
</div>
|
|
||||||
<h2 class="text-headline">Productivity</h2>
|
|
||||||
<div class="feature-row">
|
|
||||||
<div class="feature"><h3>Templates</h3>
|
|
||||||
<p class="text-body">Quickly create UI views with simple and powerful template syntax.</p>
|
|
||||||
</div>
|
|
||||||
<div class="feature"><h3>Angular CLI</h3>
|
|
||||||
<p class="text-body">Command line tools: start building fast, add components and tests,
|
|
||||||
then instantly deploy.</p></div>
|
|
||||||
<div class="feature"><h3>IDEs</h3>
|
|
||||||
<p class="text-body">Get intelligent code completion, instant errors, and other feedback
|
|
||||||
in popular editors and IDEs.</p></div>
|
|
||||||
</div>
|
|
||||||
<h2 class="text-headline">Full Development Story</h2>
|
|
||||||
<div class="feature-row">
|
|
||||||
<div class="feature"><h3>Testing</h3>
|
|
||||||
<p class="text-body">With Karma for unit tests, you can know if you've broken things every
|
|
||||||
time you save. And Protractor makes your scenario tests run faster and in a stable
|
|
||||||
manner.</p></div>
|
|
||||||
<div class="feature"><h3>Animation</h3>
|
|
||||||
<p class="text-body">Create high-performance, complex choreographies and animation
|
|
||||||
timelines with very little code through Angular's intuitive API.</p></div>
|
|
||||||
<div class="feature"><h3>Accessibility</h3>
|
|
||||||
<p class="text-body">Create accessible applications with ARIA-enabled components,
|
|
||||||
developer guides, and built-in a11y test infrastructure.</p></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="cta-bar"><a href="/docs/ts/latest/quickstart.html" md-button="md-button"
|
|
||||||
class="button button-large button-shield md-raised md-primary">Get
|
|
||||||
Started</a></div>
|
|
||||||
</article>
|
|
@ -1,72 +0,0 @@
|
|||||||
<header class="background-sky l-relative">
|
|
||||||
<div class="hero background-superhero-paper is-large"><img
|
|
||||||
src="assets/images/logos/angular2/angular.svg" class="hero-logo"/>
|
|
||||||
<h1 class="text-headline">One framework.<br>Mobile & desktop.</h1><a
|
|
||||||
href="/docs/ts/latest/quickstart.html" md-button="md-button"
|
|
||||||
class="hero-cta md-raised button button-large button-plain">Get Started</a></div>
|
|
||||||
<announcement-bar class="announcement-bar">
|
|
||||||
<div class="announcement-bar-slide cleafix is-visible"><img
|
|
||||||
src="assets/images/logos/anglebrackets/devintersection.png" width="64"/>
|
|
||||||
<p>Join us for <strong>DEVintersection Amsterdam</strong> Nov 14-16!</p><a
|
|
||||||
href="https://www.devintersectioneurope.com/#!/" target="_blank" class="button md-button">Register
|
|
||||||
now</a></div>
|
|
||||||
</announcement-bar>
|
|
||||||
</header>
|
|
||||||
<article class="l-content ">
|
|
||||||
<div class="home-rows"><!-- Group 1-->
|
|
||||||
<div layout="row" layout-xs="column" class="home-row">
|
|
||||||
<div class="promo-img-container promo-1">
|
|
||||||
<div><img src="assets/images/home/responsive-framework.svg"></div>
|
|
||||||
</div>
|
|
||||||
<div class="text-container">
|
|
||||||
<div class="text-block promo-1-desc l-pad-top-2"><h3 class="text-headline">Develop Across
|
|
||||||
All Platforms</h3>
|
|
||||||
<p class="text-body">Learn one way to build applications with Angular and reuse your code
|
|
||||||
and abilities to build apps for any deployment target. For web, mobile web, native
|
|
||||||
mobile and native desktop.
|
|
||||||
</p></div>
|
|
||||||
</div>
|
|
||||||
</div><!-- Group 2-->
|
|
||||||
<div layout="row" layout-xs="column" class="home-row">
|
|
||||||
<div class="text-container">
|
|
||||||
<div class="text-block"><h3 class="text-headline">Speed & Performance</h3>
|
|
||||||
<p class="text-body">Achieve the maximum speed possible on the Web Platform today, and
|
|
||||||
take it further, via Web Workers and server-side rendering.</p>
|
|
||||||
<p class="text-body">Angular puts you in control over scalability. Meet huge data
|
|
||||||
requirements by building data models on RxJS, Immutable.js or another push-model.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="promo-img-container promo-2">
|
|
||||||
<div><img src="assets/images/home/speed-performance.svg"></div>
|
|
||||||
</div>
|
|
||||||
</div><!-- Group 3-->
|
|
||||||
<div layout="row" layout-xs="column" class="home-row">
|
|
||||||
<div class="promo-img-container promo-3">
|
|
||||||
<div><img src="assets/images/home/joyful-development.png"></div>
|
|
||||||
</div>
|
|
||||||
<div class="text-container">
|
|
||||||
<div class="text-block promo-3-desc"><h3 class="text-headline">Incredible Tooling</h3>
|
|
||||||
<p class="text-body">Build features quickly with simple, declarative templates. Extend the
|
|
||||||
template language with your own components and use a wide array of existing components.
|
|
||||||
Get immediate Angular-specific help and feedback with nearly every IDE and editor. All
|
|
||||||
this comes together so you can focus on building amazing apps rather than trying to make
|
|
||||||
the code work.
|
|
||||||
</p></div>
|
|
||||||
</div>
|
|
||||||
</div><!-- Group 4-->
|
|
||||||
<div layout="row" layout-xs="column" class="home-row">
|
|
||||||
<div class="text-container">
|
|
||||||
<div class="text-block l-pad-top-2"><h3 class="text-headline">Loved by Millions</h3>
|
|
||||||
<p class="text-body">From prototype through global deployment, Angular delivers the
|
|
||||||
productivity and scalable infrastructure that supports Google's largest
|
|
||||||
applications.</p></div>
|
|
||||||
</div>
|
|
||||||
<div class="promo-img-container promo-4">
|
|
||||||
<div><img src="assets/images/home/loved-by-millions.png"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="cta-bar"><a href="/docs/ts/latest/quickstart.html" md-button="md-button"
|
|
||||||
class="button button-large button-shield md-raised md-primary">Get
|
|
||||||
Started</a></div>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
@ -1,115 +0,0 @@
|
|||||||
<header class="hero background-sky"><h1 class="hero-title ">News</h1>
|
|
||||||
<div class="clear"></div>
|
|
||||||
</header>
|
|
||||||
<article class="l-content ">
|
|
||||||
<div class="grid-fluid l-space-bottom-2">
|
|
||||||
<div class="c12 text-center"><h3 class="text-headline text-uppercase"> Core Team</h3></div>
|
|
||||||
<div class="clear"></div>
|
|
||||||
</div>
|
|
||||||
<div class="grid-fluid">
|
|
||||||
<div class="c6">
|
|
||||||
<div class="article-card">
|
|
||||||
<div class="date">Oct 12, 2016</div>
|
|
||||||
<div class="title"><a target="_blank"
|
|
||||||
href="http://angularjs.blogspot.com/2016/10/angular-210-now-available.html">Angular
|
|
||||||
2.1.0 Now Available</a></div>
|
|
||||||
<p>Angular version 2.1.0 - incremental-metamorphosis - is a minor release following our
|
|
||||||
announced adoption of Semantic Versioning...</p>
|
|
||||||
<div class="author"><img src="assets/images/bios/stephenfluin.jpg">
|
|
||||||
<div class="posted">Posted by <b>Stephen Fluin</b></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="c6">
|
|
||||||
<div class="article-card">
|
|
||||||
<div class="date">Oct 7, 2016</div>
|
|
||||||
<div class="title"><a target="_blank"
|
|
||||||
href="http://angularjs.blogspot.com/2016/10/versioning-and-releasing-angular.html">Versioning
|
|
||||||
and Releasing Angular</a></div>
|
|
||||||
<p>In order for the ecosystem around Angular to thrive, developers need stability from the
|
|
||||||
Angular framework so that reusable components and libraries, tools and learned practices
|
|
||||||
don’t go obsolete unexpectedly...</p>
|
|
||||||
<div class="author"><img src="assets/images/bios/igor-minar.jpg">
|
|
||||||
<div class="posted">Posted by <b>Igor Minar</b></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="grid-fluid l-space-bottom-2 l-space-top-4">
|
|
||||||
<div class="c12 text-center"><h3 class="text-headline text-uppercase"> Developer Community</h3>
|
|
||||||
</div>
|
|
||||||
<div class="clear"></div>
|
|
||||||
</div>
|
|
||||||
<div class="grid-fluid">
|
|
||||||
<div class="c6">
|
|
||||||
<div class="article-card">
|
|
||||||
<div class="date">Oct 30, 2016</div>
|
|
||||||
<div class="title"><a target="_blank"
|
|
||||||
href="https://www.thepolyglotdeveloper.com/2016/10/use-pre-populated-sqlite-database-nativescript-angular-2/">Use
|
|
||||||
A Pre-Populated SQLite Database With NativeScript And Angular 2</a></div>
|
|
||||||
<p>I figured it would be a good idea to demonstrate how to ship a NativeScript Angular 2
|
|
||||||
application with a pre-filled SQLite database rather than populating it on-the-fly....</p>
|
|
||||||
<div class="author"><img src="assets/images/bios/shield-bio-placeholder.png">
|
|
||||||
<div class="posted">Posted by <b>Nic Raboy</b></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="c6">
|
|
||||||
<div class="article-card">
|
|
||||||
<div class="date">Oct 13, 2016</div>
|
|
||||||
<div class="title"><a target="_blank"
|
|
||||||
href="http://blog.thoughtram.io/angular/2016/10/13/two-way-data-binding-in-angular-2.html">Two-way
|
|
||||||
Data Binding in Angular 2</a></div>
|
|
||||||
<p>If there was one feature in Angular that made us go “Wow”, then it was probably its
|
|
||||||
two-way data binding system. Changes in the application state have been automagically
|
|
||||||
reflected into the view...</p>
|
|
||||||
<div class="author"><img src="assets/images/bios/angular-gde-bio-placeholder.png">
|
|
||||||
<div class="posted">Posted by <b>Pascal Precht</b></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="grid-fluid">
|
|
||||||
<div class="c6">
|
|
||||||
<div class="article-card">
|
|
||||||
<div class="date">Oct 10, 2016</div>
|
|
||||||
<div class="title"><a target="_blank"
|
|
||||||
href="http://www.creativebloq.com/how-to/build-a-material-design-app-with-angular-2">Build
|
|
||||||
a Material Design app with Angular 2</a></div>
|
|
||||||
<p>This walkthrough reveals how to create a DialogComponent and to-do app with Angular
|
|
||||||
Material and the Angular CLI...</p>
|
|
||||||
<div class="author"><img src="assets/images/bios/shield-bio-placeholder.png">
|
|
||||||
<div class="posted">Posted by <b>Daniel Zen</b></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="c6">
|
|
||||||
<div class="article-card">
|
|
||||||
<div class="date">Sept 30, 2016</div>
|
|
||||||
<div class="title"><a target="_blank"
|
|
||||||
href="http://www.simb.co/angular-cli-using-docker/?platform=hootsuite">Using
|
|
||||||
Angular CLI to create Angular 2 applications in Docker</a></div>
|
|
||||||
<p>Angular CLI is a great tool for developing Angular 2 applications. I thought it would be
|
|
||||||
fun to do a quick demo...</p>
|
|
||||||
<div class="author"><img src="assets/images/bios/shield-bio-placeholder.png">
|
|
||||||
<div class="posted">Posted by <b>Simeon Bateman</b></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="grid-fluid l-space-bottom-2 l-space-top-4">
|
|
||||||
<div class="c12 text-center"><h3 class="text-headline text-uppercase">Twitter</h3></div>
|
|
||||||
<div class="clear"></div>
|
|
||||||
<div class="grid-fluid">
|
|
||||||
<div class="c3"><p></p></div>
|
|
||||||
<div class="c6">
|
|
||||||
<div class="article-card">
|
|
||||||
<div class="title"><a href="http://twitter.com/angularjs" data-show-count="false"
|
|
||||||
class="twitter-follow-button">Follow @angularjs</a></div>
|
|
||||||
<p><a class="twitter-timeline" data-chrome="nofooter noborders noheader"
|
|
||||||
href="http://twitter.com/angularjs" data-widget-id="700150278465523713"></a></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
Before Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 80 KiB |
Before Width: | Height: | Size: 119 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 9.1 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 8.2 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 9.9 KiB |