Добрый день!
Имеем модальное окно с динамическим контентом, интересно, почем между контроллером модального окна и контроллером контента появляется лишний $scope
<div class="lightbox" ng-controller="ModalCtrl as ctrl" ng-show="show">
<div ng-include="tplUrl" class="max-height max-width"></div>
</div>
define(['app'], function(app) {
app.controller('ModalCtrl', ['$scope', 'outerConfig', function($scope) {
$scope.$on('modal', function(e, options) {
$scope.tplUrl = (options.tplUrl || 'app/modal/tpl.html');
$scope.callback = options.callback;
});
}]);
});
Что я имею ввиду?
Если мы вызовем $broadcast('modal', options) --> внутри единственного обработчика ModalCtrl заменим tplUrl --> подгрузится новая view, у которой собственный контроллер, назовём NewCtrl, получаем новый $scope унаследованный от ModalCtrl, неожиданностью стало, что внутри контроллера NewCrtl callback который мы положили в $scope ModalCtrl, будет доступен через $scope.$parent.$parent.callback, вместо $scope.$parent.callback
От куда лишний родитель?