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>