Phantom不会初始化/加载angularjs控制器方法

时间:2014-12-03 23:15:53

标签: javascript angularjs node.js phantomjs

我需要帮助在由angularjs控制器驱动的html页面上创建pdf文件。 pdf将使用幻像模块创建。我能够在导航到特定网址时正确显示和绑定数据,但是当我调用幻像来呈现页面时,它不会加载/初始化/调用控制器方法我尝试了不同的方法,例如从中执行ng-init div或调用控制器中的函数一次完成加载甚至使用

$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模板没有数据被绑定。我已经添加了延迟,但它仍然没有帮助。

1 个答案:

答案 0 :(得分:1)

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