2017-06-14 1 views
0

Vor kurzem habe ich ein HTML-Widget geschrieben, um eine Javascript-Datei für Venn Diagramm Plotten zu verwenden. In RStudio funktioniert die App gut, so dass ich bisher nicht erkannt habe, dass es ein Problem bei der Nutzung der App auf dem glänzenden Server gibt.HTMLWidget: Glänzende App läuft gut in Rstudio, aber nicht auf Shiny-Server

Wenn ich die App mit Shiny in RStudio ausführen, wird kein Fehler geworfen und der Webbrowser zeigt alle anderen Elemente meiner Shiny-Seite mit Ausnahme des neuen Widget. Betrachtet man die Entwicklerkonsole des Browsers, sehe ich den folgenden Fehler, der für mich irgendwie kryptisch ist.

Ich führe es auch außerhalb von RStudio, nur um sicher zu gehen, aber gleicher Fehler.

Ich habe dies mit 2 unabhängigen Paketen getestet, so scheint es ein systematischer Fehler auf meiner Seite zu sein.

Durch Überprüfung der laufenden App im Browser habe ich gesehen, dass das folgende div erstellt wird. Die übermittelten Daten konnte ich jedoch nicht finden.

<div id="vennDia" style="width:100%; height:400px; " class="vennConductor html-widget html-widget-output"></div> 

vennConductor.js:

HTMLWidgets.widget({ 
    name: 'vennConductor', 
    type: 'output', 

initialize: function(el, width, height) { 
    }, 
    renderValue: function(el, x, instance) { 
     // console.log(x) 
     $(el).jvenn(x)}, 
    resize: function(el, width, height, instance) { 
     $(el).attr("width", width).attr("height", height) 
    } 
}); 

Meiner Meinung nach „relevant“ HTMLWidget R Code:

htmlwidgets::createWidget(
    name = 'vennConductor', 
    json_payload, 
    width = width, 
    height = height, 
    package = 'vennConductor', 
    elementId = elementId, 
    sizingPolicy = htmlwidgets::sizingPolicy(
     browser.fill = TRUE, 
     viewer.fill = TRUE 
    ) 
) 


#' @name vennConductor-shiny 
#' @export 
vennConductorOutput <- function(outputId, width = '100%', height = '400px'){ 
    htmlwidgets::shinyWidgetOutput(outputId, 'vennConductor', width, height, package = 'vennConductor') 
} 

#' @rdname vennConductor-shiny 
#' @export 
renderVennConductor <- function(expr, env = parent.frame(), quoted = FALSE) { 
    if (!quoted) { expr <- substitute(expr) } # force quoted 
    htmlwidgets::shinyRenderWidget(expr, vennConductorOutput, env, quoted = TRUE) 
} 

und der Anruf-Widget:

jVennConductor(elementId = 'vennDia', venn_lists = vlist_01, displayMode=T, displayStat=T) 

Hoffnung jeder kann helfen Sie mir. Vielen Dank!!!

P. S .: R und ein Packages sind up-to-date und mein Betriebssystem ist Windows 10.

Antwort

0

Wir haben den Grund für das Problem gefunden. Shiny importiert jQuery nach Kleinbuchstaben, jVennConductor nach Großbuchstaben und das ist es, was den Fehler verursacht. Einfache Änderung sowohl in Kleinbuchstaben löste das Problem.

Dank Joe Cheng

https://github.com/ramnathv/htmlwidgets/issues/253

Verwandte Themen