Go to file
Pete Bacon Darwin c986d3dcf4 fix(upgrade): upgrade Directive facade should not return different instance from constructor (#27660)
In ngUpgrade (dynamic) we create a dynamic Angular `Directive` that wraps AngularJS components
that are being upgraded. The constructor of this `Directive` class returns a different instance
than `this`. It is this instance that actually contains the life-cycle hook handlers.

This would break in ivy, since the methods on the prototype of the original class are wired up,
rather than the instance methods. This results in hooks like `ngOnInit` not being called.

This commit refactors the code to extend the inner class that was being returned so that the
prototype chain is correct for both ViewEngine and ivy.

This change resolves a number of failing ivy tests, but also exposes other failures that were
masked by this issue. The tests have been updated accordingly.

(FW-812)

PR Close #27660
2018-12-17 14:51:34 -08:00
.buildkite ci: test ts-api-guardian on windows (#27205) 2018-12-06 09:38:59 -08:00
.circleci build: update to Bazel 0.20 (#27394) 2018-12-07 14:29:03 -08:00
.github ci: exclude unnedeed files and directories from angular-robot g3sync check (#27653) 2018-12-13 10:58:43 -08:00
aio docs: remove misplaced code in Universal guide (#26865) 2018-12-17 09:35:35 -08:00
docs docs: update SAVED_REPLIES and CONTRIBUTING with new issue templates (#27608) 2018-12-11 16:43:57 -08:00
integration test(ivy): enable running cli-hello-world-ivy integration test suite (#27438) 2018-12-17 09:35:16 -08:00
modules build(bazel): upgrade benchmarks to protractor_web_test_suite for CI without local chrome (#26908) 2018-11-07 16:47:39 -08:00
packages fix(upgrade): upgrade Directive facade should not return different instance from constructor (#27660) 2018-12-17 14:51:34 -08:00
scripts build: re-enable saucelabs non-verbose logging (#27657) 2018-12-14 10:19:54 -08:00
third_party/github.com/bazelbuild/bazel-toolchains/bazelrc build: update to Bazel 0.20 (#27394) 2018-12-07 14:29:03 -08:00
tools fix(ivy): check semantics of NgModule for consistency (#27604) 2018-12-17 14:49:51 -08:00
.bazelignore build: add aio/tools/examples/shared/node_modules to .bazelignore (#27278) 2018-11-27 10:30:58 -08:00
.bazelrc build: update to Bazel 0.20 (#27394) 2018-12-07 14:29:03 -08:00
.bowerrc chore(dgeni): clean up legacy typings bundle creation 2015-10-29 21:19:59 +00:00
.clang-format feat(tooling): Add a .clang-format for automated JavaScript formatting. 2015-04-02 08:44:34 -07:00
.editorconfig chore(.editorconfig): include markdown config 2015-01-27 00:14:48 -08:00
.gitattributes chore: force lf EOL for ts files (#11143) 2016-08-29 12:41:58 -07:00
.gitignore build: introduce remote bazel caching (#27358) 2018-12-06 11:25:03 -08:00
.mailmap build: add a Git .mailmap with my new name (#19550) 2017-10-09 14:35:30 -07:00
.nvmrc build: update .nvmrc file to correct node version (#25992) 2018-09-18 13:11:58 -07:00
.pullapprove.yml ci: remove packages/bazel from compiler-cli group (#27641) 2018-12-13 10:58:58 -08:00
.travis.yml build: disable failing optional travis jobs (#27657) 2018-12-14 10:19:54 -08:00
BUILD.bazel build: use bazel version from node modules (#26691) 2018-10-30 16:19:13 -04:00
CHANGELOG.md docs: remove labs breaking changes from changelog (#27628) 2018-12-13 11:00:57 -08:00
CODE_OF_CONDUCT.md docs: fix community tab in GitHub by copying CoC 2018-02-27 19:02:30 -08:00
CONTRIBUTING.md docs: update SAVED_REPLIES and CONTRIBUTING with new issue templates (#27608) 2018-12-11 16:43:57 -08:00
LICENSE docs(common): update copyright years (#21232) 2018-01-04 17:45:36 -05:00
README.md build: run CI (#26488) 2018-10-19 20:59:29 -07:00
WORKSPACE build: update to Bazel 0.20 (#27394) 2018-12-07 14:29:03 -08:00
bower.json docs: branding fixes (#14132) 2017-01-27 15:03:11 -06:00
browser-providers.conf.js feat(elements): enable Shadow DOM v1 and slots (#24861) 2018-08-30 21:33:14 -07:00
build.sh feat(ivy): implement TestBed (#25369) 2018-08-14 11:58:47 -07:00
gulpfile.js build: remove obsolete gulp build task (#27386) 2018-12-05 20:55:32 -08:00
index.bzl style: format .bzl files with buildifier (#23544) 2018-08-08 13:12:07 -07:00
karma-js.conf.js build: update to latest karma-sauce-launcher version (#27634) 2018-12-13 10:58:18 -08:00
package.json build: update to latest karma-sauce-launcher version (#27634) 2018-12-13 10:58:18 -08:00
protractor-e2e.conf.js refactor: add license header to JS files & format files (#12081) 2016-10-04 20:39:20 -07:00
protractor-examples-e2e.conf.js refactor: format and lint code 2016-12-12 11:30:25 -08:00
protractor-perf.conf.js ci: configure chrome options for protractor (#26735) 2018-10-26 14:48:05 -04:00
shims_for_IE.js Revert "refactor: add license header to JS files & format files (#12035)" 2016-10-04 14:06:41 -07:00
test-events.js fix(platform-browser): run BLACK_LISTED_EVENTS outside of ngZone (#18993) 2017-09-05 15:33:22 -05:00
test-main.js refactor(core): remove withBody from public testing API (#25171) 2018-07-31 15:09:32 -07:00
test.sh feat: typescript 2.9 support (#24652) 2018-07-03 13:32:06 -07:00
tslint.json style: tslint enforces no debugger statements left behind (#25532) 2018-08-16 16:00:22 -07:00
yarn.lock build: update to latest karma-sauce-launcher version (#27634) 2018-12-13 10:58:18 -08:00
yarn.lock.readme.md docs: replace npm with yarn in lockfile readme (#25309) 2018-08-06 13:38:13 -07:00

README.md

Build Status CircleCI BrowserStack Status Join the chat at https://gitter.im/angular/angular npm version

Angular

Angular is a development platform for building mobile and desktop web applications using Typescript/JavaScript and other languages.

Quickstart

Get started in 5 minutes.

Changelog

Learn about the latest improvements.

Want to help?

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues in the hotlist: community-help.