xoma2
@xoma2
Программист

Почему не отрисовывается template при использовании $compile в директиве?

directive('addSubtitle', function($compile) {

    var subtitleTemplate =
        '<div class="entry-photo">' +
            '<h2>&nbsp;</h2>' +
            '<div class="entry-img">' +
                '<span>' +
                    '<a href="">' +
                        '<img ng-src="" alt="entry photo">' +
                    '</a>' +
                '</span>' +
            '</div>' +
        '' +
            '<div class="entry-text">' +
                '<div class="entry-title"></div>' +
                '<div class="entry-copy"></div>' +
            '</div>' +
        '</div>';

    var getTemplate = function(contentType) {
        var template = '';

        switch(contentType) {
            case 'subtitle':
                template = subtitleTemplate;
                break;
            case 'video':
                template = videoTemplate;
                break;
            case 'notes':
                template = noteTemplate;
                break;
        }
        return template;
    };

    var linker = function(scope, element, attrs) {

        element.click(function(){
            console.log(attrs.contentType);
            console.log(scope.type);

            $compile(getTemplate(scope.type.type));
        });
    };

    return {
        restrict: "EA",
        scope: {
            type: '=contentType'
        },
        replace: false,
        link: linker
    };

});
  • Вопрос задан
  • 2283 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Demetros
Читайте документацию по сервису $compile.
Ваш вызов возвращает функцию, которую можно вызвать с параметром scope и получить элемент.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы