bcd0d4d896
Fixes #15350 Closes #15352 BREAKING CHANGE: Previously, $compileProvider.preAssignBindingsEnabled was set to true by default. This means bindings were pre-assigned in component constructors. In Angular 1.5+ the place to put the initialization logic relying on bindings being present is the controller $onInit method. To migrate follow the example below: Before: ```js angular.module('myApp', []) .component('myComponent', { bindings: {value: '<'}, controller: function() { this.doubleValue = this.value * 2; } }); ``` After: ```js angular.module('myApp', []) .component('myComponent', { bindings: {value: '<'}, controller: function() { this.$onInit = function() { this.doubleValue = this.value * 2; }; } }); ``` If you don't have time to migrate the code at the moment, you can flip the setting back to true: ```js angular.module('myApp', []) .config(function($compileProvider) { $compileProvider.preAssignBindingsEnabled(false); }) .component('myComponent', { bindings: {value: '<'}, controller: function() { this.doubleValue = this.value * 2; } }); ``` Don't do this if you're writing a library, though, as you shouldn't change global configuration then.