2013-06-11 4 views
0

Работа над директивой для выделения <code> тегов, выдаваемых директивой для визуализации <markdown> тегов.Директива внутри директивы

Проблема в том, что директива <code> никогда не попадает после выполнения директивы <markdown>. Однако директива <code> работает с тегами кода, которые не выводятся из директивы <markdown>.

Markdown директива

angular.module('App').directive "markdown", -> 
    converter = new Showdown.converter() 

    scope: true 
    restrict: 'E' 
    link: (scope, element, attrs) -> 
    if attrs.markdown 
     scope.$watch attrs.markdown, (newVal) -> 
     html = converter.makeHtml(newVal) 
     element.html(html) 
    else 
     redraw = -> 
     html = converter.makeHtml(element.text()) 
     element.html(html) 

     #### expecting the code directive to be trigger after this. 

     scope.$on "$includeContentLoaded", redraw 
     redraw() 

Любые мысли?

ответ

1

AngularJS не знает, чтобы скомпилировать что-либо из вашей уценки. Есть два способа получить этот материал для компиляции. Один из способов - использование трансклюзии, но я не думаю, что это сработает для вашего использования. В вашем случае вам нужно будет скомпилировать изменения с вашей уценкой. Для этого вы используете услугу компиляции Angular.

Сначала введите в свою директиву службу $compile. Затем после установки element.html(html) попробуйте следующее: $compile(element.contents())(scope);

Смежные вопросы