add missing RecursionHelper

This commit is contained in:
tdurieux
2021-04-21 18:26:42 +02:00
parent 5d2da5a93a
commit 3f6e8fbc0d
2 changed files with 45 additions and 1 deletions

View File

@@ -43,8 +43,8 @@
<script src="/script/external/ui-ace.min.js"></script>
<script src="/script/langColors.js"></script>
<script src="/script/app.js"></script>
<script src="/script/ng-pdfviewer.min.js"></script>
<script src="/script/app.js"></script>
</head>
<body keypress-events class="d-flex flex-column">

View File

@@ -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 {