2016-11-07 3 views
1

Ich versuche eine App zu erstellen, die ein Liniendiagramm mit der Google Charts API zeichnet. Eine Sache, die ich eingerichtet habe, ist ein Ereignis-Listener im Fenster für das 'resize' Ereignis. Dadurch wird das Liniendiagramm neu gezeichnet, wobei die Dimensionen 'window.innerWidth' und 'window.innerHeight' an die neue Fenstergröße angepasst werden.Electron 'Fenster' ist nicht definiert

Das alles funktioniert ganz gut, wenn ich die App npm Start ausgeführt werden. Problem ist, wenn ich die App mit dem Electron-Packager baue. Ausführen der exe es wirft diese baut: enter image description here

Hier ist mein HTML:

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="UTF-8"> 
    <title>AP Test Viewer</title> 
    <link rel="stylesheet" href="css/styles.css"> 

    </head> 
    <body ng-app="ApApp" ng-controller="MainController"> 

    <a ui-sref="single">Single</a> 
    <a ui-sref="multi">Multi</a> 

    <ui-view></ui-view> 


    </body> 

    <script> 
    // You can also require other files to run in this process 
    require('./renderer.js'); 
    require('./js/loader.js'); //google charts loader.js 
    require('./js/app.js'); 
    </script> 
</html> 

und der relevante Teil meiner app, wo ich Fenster verwenden hier:

app.fun.drawGraph = function(){ 
    if(app.data.graphConfig){ 
     app.data.graphConfig.options.width = window.innerWidth * 0.97; 
     app.data.graphConfig.options.height = window.innerHeight * 0.90; 

     var chart = new google.visualization.LineChart(document.getElementById('chart')); 
     chart.draw(app.data.graphConfig.data, app.data.graphConfig.options); 
     // chart.draw($scope.graphData, google.charts.Line.convertOptions(options));  
    } 
} 

window.addEventListener('resize', function(e){ 
    if(app.data.graphConfig){ 
     app.fun.drawGraph(); 
    } 
}) 

Soweit ich Wissen Sie, dies sollte nur "Fenster" sein, wie es von Javascript auf einer Webseite aufgerufen werden kann.

+0

hast du das gelöst? Ich stehe genau vor dem gleichen Problem. – ThunderWiring

Antwort

1

Es sieht aus wie die entsprechenden Javascript Sie verweisen in der Hauptprozess ausgeführt wird, anstatt die Renderer Prozesse. Wenn Sie den Code, der auf window verweist, in ein Skript-Tag im HTML-Code verschieben, sollten Sie das gleiche Problem nicht sehen.

Soweit die Dateien von der HTML-Seite erfordert ich es erwarten würde als arbeiten, wenn es auch in einem Script-Tag war. Ich könnte mich allerdings irren.

Verwandte Themen