From 3f6e8fbc0d9a775b910ff7bd89b59c7b894f4171 Mon Sep 17 00:00:00 2001 From: tdurieux Date: Wed, 21 Apr 2021 18:26:42 +0200 Subject: [PATCH] add missing RecursionHelper --- public/index.html | 2 +- public/script/ng-pdfviewer.min.js | 44 +++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/public/index.html b/public/index.html index d8b0517..e769eaa 100644 --- a/public/index.html +++ b/public/index.html @@ -43,8 +43,8 @@ - + diff --git a/public/script/ng-pdfviewer.min.js b/public/script/ng-pdfviewer.min.js index b5da0ef..775e5ff 100644 --- a/public/script/ng-pdfviewer.min.js +++ b/public/script/ng-pdfviewer.min.js @@ -8,6 +8,50 @@ angular .module("ngPDFViewer", []) + .factory("RecursionHelper", [ + "$compile", + function($compile) { + return { + /** + * Manually compiles the element, fixing the recursion loop. + * @param element + * @param [link] A post-link function, or an object with function(s) registered via pre and post properties. + * @returns An object containing the linking functions. + */ + compile: function(element, link) { + // Normalize the link parameter + if (angular.isFunction(link)) { + link = { post: link }; + } + + // Break the recursion loop by removing the contents + var contents = element.contents().remove(); + var compiledContents; + return { + pre: link && link.pre ? link.pre : null, + /** + * Compiles and re-adds the contents + */ + post: function(scope, element) { + // Compile the contents + if (!compiledContents) { + compiledContents = $compile(contents); + } + // Re-add the compiled contents to the element + compiledContents(scope, function(clone) { + element.append(clone); + }); + + // Call the post-linking function, if any + if (link && link.post) { + link.post.apply(null, arguments); + } + }, + }; + }, + }; + }, + ]) .directive("pdfpageviewer", [ function() { return {