Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 幻影不会初始化/加载angularjs控制器方法_Javascript_Angularjs_Node.js_Phantomjs - Fatal编程技术网

Javascript 幻影不会初始化/加载angularjs控制器方法

Javascript 幻影不会初始化/加载angularjs控制器方法,javascript,angularjs,node.js,phantomjs,Javascript,Angularjs,Node.js,Phantomjs,我需要帮助创建一个由angularjs控制器驱动的html页面的pdf文件。pdf将使用phantom模块创建。我能够在导航到特定url后立即正确显示和绑定数据,但当我调用phantom来呈现页面时,它不会加载/初始化/调用控制器方法,我尝试了不同的方法,例如从div执行ng init,或者在加载或甚至使用 $scope.$on('$viewContentLoaded', function(){ //code here... }) 幻象代码: function DoThePDF(){

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

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

PhantomJS 1.9.x不支持websocket,因此我必须使用PhantomJS 2。目前还没有正式版本e正在开发中,但还没有测试版
按指定进行生成。祝您好运

请注册到、、事件。可能有错误。请注意,使用网桥进行注册有点困难。显然,phantom使用的套接字非常旧,与我使用的套接字不兼容,因此无法正确加载页面。PhantomJS 1.x不支持WebSocket。您可以编译PhantomJS 2方法1:编译phantomJS2未知状态。方法2:使用angularjs服务器在服务器端构建网页,在phamton请求页面已加载且无需加载时,不要忘记回答您自己的问题以及确定此问题的所有结果和路径o与WebSocket沟通。我将发布最终解决方案