Область действия директивы, вызов функций контроллера с использованием 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 и т. Д.

Является ли это возможным? Как?

(Я знаю, что могу добавить это как дополнительный аргумент, но хотел избежать этого)

Спасибо

0 ответов

Другие вопросы по тегам