compiler: improve support for AngularJS 1.7.2+ #11319
Description
Bug, enhancement request, or proposal:
Proposal
CodePen and steps to reproduce the issue:
Demo which demonstrates the issue:
https://travis-ci.org/angular/material/jobs/388688438 is just one of many CI unit test jobs which have failed for the AngularJS SNAPSHOT
view since angular/angular.js#16580 was merged.
What is the expected behavior?
AngularJS Material unit tests in master
pass against the AngularJS SNAPSHOT
version.
What is the current behavior?
54 failing tests can be seen in all recent jobs like https://travis-ci.org/angular/material/jobs/388688438.
What is the use-case or motivation for changing an existing behavior?
We were fairly well prepared for the changes in angular/angular.js#15782 that went into AngularJS 1.7.0, but the follow on breaking changes in angular/angular.js#16580 that are part of the unreleased AngularJS 1.7.1 remove some private and undocumented APIs that AngularJS Material depended upon.
One example is the use of the third and fourth arguments in $controller
which were added to fix an issue with ES6 that we resolved in 1.1.5. You can see some of the comments that explain this here:
material/src/core/services/compiler/compiler.js
Lines 452 to 477 in 0046467
Which versions of AngularJS, Material, OS, and browsers are affected?
- AngularJS: 1.7.1
- AngularJS Material: All
- OS: All
- Browsers: All
Is there anything else we should know? Stack Traces, Screenshots, etc.
We cover some of the details of $compileProvider.preAssignBindingsEnabled()
in our updated docs for 1.1.9 here: https://material.angularjs.org/latest/api/service/$mdCompilerProvider#mdcompilerprovider-respectpreassignbindingsenabled-respected