2017-06-14 6 views
0

Récemment, j'ai écrit un widget html pour utiliser un fichier javascript pour le tracé de diagramme venn. Dans RStudio, l'application fonctionne bien, donc je n'ai pas réalisé jusqu'à présent qu'il y a un problème en utilisant l'application sur le serveur brillant.HTMLWidget: application brillante fonctionne bien dans Rstudio mais pas sur Shiny-Server

Si je lance l'application avec Shiny dans RStudio, aucune erreur n'est lancée et le navigateur Web affiche tous les autres éléments de ma page Shiny à l'exception du nouveau widget. Compte tenu de la console développeur du navigateur, je vois l'erreur suivante qui est un peu cryptique pour moi. Je l'ai également exécuté en dehors de RStudio juste pour être sûr mais même erreur.

J'ai testé cela avec 2 paquets indépendants donc ça semble être une erreur systématique de mon côté. En inspectant l'application en cours d'exécution dans le navigateur, j'ai vu que la div suivante est créée. Cependant, je n'ai pas pu trouver les données soumises.

<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) 
    } 
}); 

À mon avis « pertinente » HTMLWidget Code R:

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) 
} 

et l'appel widget:

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

espoir tout le monde peut aide moi. Merci!!!

P.s de R et un colis sont à jour et mon système d'exploitation est Windows 10.

Répondre