1
Я пытаюсь вызвать некоторые методы из родительского контроллера, определенного с помощью синтаксиса Controller as
из шаблона директивы, но я не могу сделать это с изолированной областью. Я мог бы написать свою директиву без изолированного объема, но в этом случае я не могу ее повторно использовать.Доступ к методу имени контроллера из шаблона директивы
Простой пример:
angular.module('app', [])
.controller('myController', function() {
var result_el = document.getElementById("log");
this.log = function(text) {
var p = document.createElement("p");
p.innerHTML = text;
result_el.appendChild(p);
}
})
.directive('myDirective', function() {
return {
restrict: 'E',
scope: {},
template: '<button ng-click="mCtrl.log(123)">Click me!</button>'
}
});
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script>
<div ng-app="app" ng-controller="myController as mCtrl">
<my-directive></my-directive>
</div>
<div id="log"></div>
Можно ли вызывать функции родительского контроллера из шаблона директивы?
передать функцию в директиве. например 'scope: {myFunc: '&'}' – rob