07122f0ad9
Previously, the relative order of the AngularJS compiling/linking operations was not similar to AngularJS's, resulting in inconsistent behavior for upgraded components (which made upgrading to Angular less straight forward). This commit fixes it, by following the compiling/linking process of AngularJS more closely. Main differences: - The components view is already populated when the controller is instantiated (and subsequent hooks are called). - The correct DOM content is available when running the `$onChanges`, `$onInit`, `$doCheck` hooks. Previously, the "content children" were still present, not the "view children". - The same for pre-linking. - The template is compiled in the correct DOM context (e.g. has access to ancestors). Previously, it was compiled in isolation, inside a dummy element. For reference, here is the order of operations: **Before** 1. Compile template 2. Instantiate controller 3. Hook: $onChanges 4. Hook: $onInit 5. Hook: $doCheck 6. Pre-linking 7. Collect content children 8. Insert compiled template 9. Linking 10. Post-linking 11. Hook: $postLink **After** 1. Collect content children 2. Insert template 3. Compile template 4. Instantiate controller 5. Hook: $onChanges 6. Hook: $onInit 7. Hook: $doCheck 8. Pre-linking 9. Linking 10. Post-linking 11. Hook: $postLink Fixes #13912 |
||
---|---|---|
.github | ||
aio | ||
docs | ||
integration | ||
modules | ||
scripts | ||
tools | ||
.bowerrc | ||
.clang-format | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.nvmrc | ||
.pullapprove.yml | ||
.travis.yml | ||
CHANGELOG.md | ||
COMMITTER.md | ||
CONTRIBUTING.md | ||
DEVELOPER.md | ||
LICENSE | ||
NAMING.md | ||
README.md | ||
SAVED_REPLIES.md | ||
TOOLS.md | ||
TRIAGE_AND_LABELS.md | ||
bower.json | ||
browser-providers.conf.js | ||
build.sh | ||
circle.yml | ||
gulpfile.js | ||
karma-js.conf.js | ||
npm-shrinkwrap.clean.json | ||
npm-shrinkwrap.json | ||
npm-shrinkwrap.readme.md | ||
package.json | ||
protractor-e2e.conf.js | ||
protractor-examples-e2e.conf.js | ||
protractor-perf.conf.js | ||
publish-packages.sh | ||
shims_for_IE.js | ||
test-main.js | ||
test.sh | ||
tslint.json |
README.md
Safari (7+), iOS (7+), Edge (14) and IE mobile (11) are tested on BrowserStack.
Angular
Angular is a development platform for building mobile and desktop web applications using Typescript/JavaScript (JS) and other languages.
Quickstart
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.