Как заставить PrismJS выделять кодовый блок в угловой директиве, не используя задержку в 1 секунду?
Я создал простое приложение (angular 1.6), которое позволяет пользователю сохранять там код и отображать его с подсветкой кода, используя prismjs. Единственная проблема заключается в том, что когда я вызываю Prism.highlightAll из директивы, мне приходится использовать метод angual $ timeout с задержкой в одну секунду.
app.directive("markupPanels", function($timeout) {
return {
restrict: "E",
replace: true,
templateUrl: "directives/markupPanel.html",
link: function() {
$timeout(function() {
Prism.highlightAll();
}, 1000)
}
}
Код выделен с задержкой в 1 секунду
Однако браузер мерцает, и я думаю, что должен быть лучший способ сделать это.
1 ответ
Использование element.ready()
,
link: function($scope, element) {
element.ready(function() {
Prism.highlightElement(element[0]);
});
}
Источник: угловая призма.