Я недавно обновил свое приложение с angularjs 1.5.9 до angularjs 1.7.9. В одном из моих контроллеров у меня был следующий код:
angular.module( 'myModule' )
.component( 'dynamicContent', {
bindings: {
pageTitle: '<',
content: '<',
type: '<',
width: '<'
},
templateUrl: 'path/to/html/file',
controllerAs: 'dynamic',
controller: function( $state, $window, Contentful ) {
var vm = this;
vm.$onInit = _init();
function _init() {
vm.items = _.map( vm.content, mapContent );
}
После обновления до 1.7.9 переменная vm.items так и не была определена, потому что vm.content не был определен в функции _init. Однако после изменения кода на ...
angular.module( 'myModule' )
.component( 'dynamicContent', {
bindings: {
pageTitle: '<',
content: '<',
type: '<',
width: '<'
},
templateUrl: 'path/to/html/file',
controllerAs: 'dynamic',
controller: function( $state, $window, Contentful ) {
var vm = this;
vm.$onInit = function _init() {
vm.items = _.map( vm.content, mapContent );
}
Теперь это работает. Может кто-нибудь объяснить , почему определение функции, где я установил ее в $ onInit, делает эту работу? Спасибо!