Область действия директивы, вызов функций контроллера с использованием controllerAs и получение доступа к переменным контроллера
У меня есть директива, которая загружает шаблон и компилирует его:
function question($templateRequest, $compile) {
return {
restrict: 'E',
scope: {
apply: '&apply',
item: '=item'
},
bindToController: true,
link: function (scope, element, attrs) {
//debugger;
var templateUrl = 'someRandomUrl'
$templateRequest(templateUrl).then(function (template) {
$compile(element.html(template).contents())(scope.$parent);
}, function () {
// An error has occurred
$compile(element.html("error").contents())(scope);
});
}
}
}
Шаблон сгенерирован правильно, я также могу вызывать функции из шаблона html в myController, например:
ng-click='vm.apply()'
На myController я использую синтаксис controllerAs vm, и при вызове обычных функций из представления контроллера я могу получить доступ к переменной vm внутри области видимости. Функции, вызываемые из шаблона, не имеют доступа к переменной vm внутри тела.
Шаблон генерируется в представлении myController.
Я также пытался использовать различные параметры для конфигурации директив, например, при удалении изолированной области, удалении bindToController и т. Д.
Является ли это возможным? Как?
(Я знаю, что могу добавить это как дополнительный аргумент, но хотел избежать этого)
Спасибо