Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Flip the $compileProvider.preAssignBindingsEnabled flag to false by default #15350

Closed
@mgol

Description

@mgol

Note: for support questions, please use one of these channels: https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#question. This repository's issues are reserved for feature requests and bug reports.

Do you want to request a feature or report a bug?
A breaking change request.

What is the current behavior?
$compileProvider.preAssignBindingsEnabled is set to true by default. This means bindings are pre-assigned in component constructors.

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via https://plnkr.co or similar (template: http://plnkr.co/edit/tpl:yBpEi4).

What is the expected behavior?
$compileProvider.preAssignBindingsEnabled should be false by default.

What is the motivation / use case for changing the behavior?
The true value of the flag causes bindings to be pre-assigned in component constructors which introduces unneeded (now that we have the $onInit lifecycle hook) complexity (we can't use regular new MyConstructor() way of creating controllers) and doesn't work with ES6 classes.

Which versions of Angular, and which browser / OS are affected by this issue? Did this work in previous versions of Angular? Please also test with the latest stable and snapshot (https://code.angularjs.org/snapshot/) versions.
All.

Other information (e.g. stacktraces, related issues, suggestions how to fix)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions