2014-12-03 55 views
3

我需要帮助创建一个PDF文件关闭由一个angularjs控制器支持的HTML页面。该pdf将通过使用幻影模块创建。即时我能够正确显示和绑定数据,只要我导航到特定的网址,但是当我打电话幻像呈现页面它不加载/ initiliaze /调用控制器方法我已经尝试了不同的方法,如从ng-init格或从控制器调用一个函数,一旦加载完成,甚至使用幻影不会初始化/加载angularjs控制器方法

$scope.$on('$viewContentLoaded', function(){ 
    //code here... 
}) 

幻影代码:

function DoThePDF(){ 
    phantom.create(function(ph){ 
     ph.createPage(function(page) { 
      page.set("paperSize", { format: "A4", orientation: 'portrait', margin: '1cm' }); 
      page.open(address, function(status) { 
       if(status !== 'success'){ 
        console.log('unable to open webpage'); 
       } 
       else{ 
        setTimeout(function() { 
         page.render("reports.pdf"); 
         console.log("page rendered"); 
         ph.exit(); 
        }, 5000); 
       } 
      }) 
     }) 
    }); 
} 

打电话时page.open(地址,功能(状态){...}我可以看到页面已经打开,但角度事件/方法不会被初始化/调用,所以当页面呈现时是一个空的html模板,没有数据被绑定。我增加了延迟,但仍然没有帮助。

+0

请注册['onConsoleMessage'](http://phantomjs.org/api/webpage/handler/on-console-message.html),['onError'](http:// phantomjs。 org/api/webpage/handler/on-error.html),['onResourceError'](http://phantomjs.org/api/webpage/handler/on-resource-error.html),['onResourceTimeout']( http://phantomjs.org/api/webpage/handler/on-resource-timeout.html)事件。也许有错误。请注意,使用该桥注册有点[不同](https://github.com/sgentle/phantomjs-node/wiki#page-settings-callbacks-properties)。 – 2014-12-03 23:44:06

+0

显然幻影使用非常旧的套接字不兼容插座即时通讯使用,因为无法正确加载页面。 – kahizer 2014-12-04 17:33:58

+0

PhantomJS 1.x不支持websockets。您可以编译PhantomJS 2.它应该处于可用作测试版本的状态。不要忘了用你的所有结果和你用来确定这个的路径回答你自己的问题。 – 2014-12-04 17:49:18

回答

1

PhantomJS 1.9.x不支持websocket,因此我必须使用PhantomJS 2.自从开发以来,还没有官方发布,但是根据指定构建了测试版 Here。祝你好运

相关问题