AngularJS等到元素完全加载

时间:2019-01-23 23:58:49

标签: angularjs angular-directive pdftron

我目前正在研究pdftron的实现,并且在webviwer尝试加载文档时,似乎webviewer的加载速度不够快。您将如何设置某种ready元素,使其等到webViewer准备加载文档??

    viewer = new PDFTron.WebViewer({
        path: 'WebViewer',
        type: 'html5',
        documentType: 'pdf'
    }, element);

    $scope.watch('url', function(blobVal) {
      viewer.loadDocument(blobVal);
    }

我在viewer.loadDocument及其上得到了一个未定义,因为未完全加载查看器。它间歇性地发生。

3 个答案:

答案 0 :(得分:1)

您要等待WebViever就绪事件。请参阅以下指南: https://www.pdftron.com/documentation/web/guides/fundamentals/webviewer#details-of-instantiation

var myWebViewer = new PDFTron.WebViewer({
  initialDoc: 'mydoc.pdf',
  ui: 'legacy'
}, viewerElement);

viewerElement.addEventListener('ready', function() {
  // API functions are now ready to be called on myWebViewer
});

也请参见以下链接: https://www.pdftron.com/api/web/PDFTron.WebViewer.html#event:ready__anchor

答案 1 :(得分:0)

我相信以下代码更有意义

   $scope.viewer = new PDFTron.WebViewer({
        path: 'WebViewer',
        type: 'html5',
        documentType: 'pdf'
    }, element);

    $scope.$watch('viewer', function(newVal, oldVal) {
      if (newVal instanceof Blob && newWal !== oldVal) {
        viewer.loadDocument(newVal);
      }
    }

答案 2 :(得分:-1)

您可以使用javascript超时。

setTimeout(function(){
       // You can write functions that will load after Angular elements.
},500);