Директива AngularJS для загрузки контроллера - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь динамически загрузить контроллер с помощью параметров директивы, ng-include и модели, но он не работает:

Hmtl:

<ng-include src="obj_data.modulo_appendice"
                dyn-controller="obj_data.modulo_appendice_controller"
                dyn-controller-url="obj_data.modulo_appendice_controller_url"></ng-include>

Директива:

WebCauApp.directive('dynControllerUrl', ['$compile', '$parse', function ($compile, $parse)
{
    return {
        restrict: 'A',
        terminal: true,
        priority: 200000,
        link: function (scope, elem)
        {
            // Parse the scope variable
            var controller = $parse(elem.attr('dyn-controller'))(scope);
            var controller_url = $parse(elem.attr('dyn-controller-url'))(scope);
            elem.removeAttr('dyn-controller');
            elem.removeAttr('dyn-controller-url');

            var script = document.createElement('script');
            script.type = "text/javascript";
            script.setAttribute('src', controller_url);

            //var head = angular.element(document.querySelector('head'));
            //head.append(script);
            elem[0].parentNode.before(script);
            elem.attr('ng-controller', controller);
            $compile(elem)(scope);

        }
    }
}]);

ошибка: аргумент 'mycontrollername' не является функцией, получил неопределенное значение

...