使用prism highlighter进行语法突出显示不适用于动态数据绑定

时间:2016-02-04 14:56:16

标签: angularjs

我遇到了使用$ http服务突出显示从数据库获取的动态数据的问题。当数据在代码元素之间进行硬编码时,突出显示工作正常,但是当我试图使用角度数据绑定{{singlePractise.code}}显示动态数据时,它根本不起作用。示例如下所示:

 myApp.directive('prism', [function() {
 return {
    restrict: 'A',
    link: function ($scope, element, attrs) {
        element.ready(function() {
            Prism.highlightElement(element[0]);
        });
    }
   };
  }]
 );

HTML:

 <code class="language-javascript" prism>{{singlePractise.code}}</code>

1 个答案:

答案 0 :(得分:0)

几乎在使用AngularJS的第三方插件的情况下。当您想要应用插件时,尚未编译内容。

最快的解决方案是使用 $ timeout

myApp.directive('prism', function($timeout) {
  return {
    restrict: 'A',
    link: function (scope, element, attrs) {
       $timeout(function(){
          Prism.highlightElement(element[0]);
       }, 0);      
    }
  };
}