Werawoolf
@Werawoolf
Frontend Engineer

Как отрендерить директиву в контроллере?

Например есть директива

(function() {
    angular.module("myDir", []).directive("myDir", myDir);

    function myDir() {
        return {
            restrict: "EA",
            templateUrl: "app/components/myDir/myDir.template.html",
        };
    }
}());


и в контроллере я пытаюсь сделать следующее

var temp = "<div myDir></div>";
var content = $compile(temp)({});


compile просто возвращает div элемент, а хотелось бы, чтобы темплэйт директивы.
  • Вопрос задан
  • 163 просмотра
Пригласить эксперта
Ответы на вопрос 2
@lega
Возможно темплейт ещё не подгрузился, попробуйте проверить результат через пару секунд.
Ответ написан
Комментировать
Цитата из доки по angular js:
Angular normalizes an element's tag and attribute name to determine which elements match which directives. We typically refer to directives by their case-sensitive camelCase normalized name (e.g. ngModel). However, since HTML is case-insensitive, we refer to directives in the DOM by lower-case forms, typically using dash-delimited attributes on DOM elements (e.g. ng-model).

В вашем случае нужно изменить код на :
var temp = "<div my-dir></div>";
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы