Angular: вызов функции объема в частичном шаблоне, включенном через ng-include

У меня есть анонимный контроллер в директиве. Этот контроллер при конкретном событии открывает общий диалог и предоставляет частичный шаблон, который используется для добавления некоторых кнопок в общий диалог через ng-include.

Теперь в обычном диалоге, когда пользователь нажимает на любую из предоставленных кнопок, я хочу, чтобы в анонимном контроллере была вызвана определенная функция. Есть мысли о том, как этого можно достичь?

контроллер:

angular.module('abc')
.directive('xyz', [function() {
  return {
    restrict: 'E',
    scope: {},
    controller: ['$scope', function($scope) {
       $scope.callThisFunc = function(){};
    }]
  }
}

Частичный шаблон:

<div>
<button label="CANCEL"
           ng-click="callThisFunc()">
</button>
</div>

Общий шаблон диалога (отличается от модуля abc выше):

<div ng-include="partial"></div>

1 ответ

Попробуйте использовать синтаксис "controllerAs"

angular.module('abc')
.directive('xyz', [function() {
  return {
    restrict: 'E',
    scope: {},
    controller: function() {
       var vm = this;

       vm.callThisFunc = function(){};

       return vm;
    }],
    controllerAs: 'xyzCtrl'
  }
}

частичный шаблон

<div>
<button label="CANCEL"
           ng-click="xyzCtrl.callThisFunc()">
</button>
</div>

универсальный шаблон диалога

<div ng-include="partial" xyz></div>
</div>
Другие вопросы по тегам