2017-06-14 64 views
0

最近我寫了一個html小部件,用於爲維恩圖繪製使用JavaScript文件。在RStudio中,該應用程序工作正常,所以我沒有意識到在閃亮的服務器上使用應用程序時存在問題。HTMLWidget:閃亮的應用程序在Rstudio中運行良好,但不在Shiny服務器上

如果我在RStudio中使用Shiny運行應用程序,則不會出現任何錯誤,Web瀏覽器會顯示除Shiny頁面外的所有其他元素,但新窗口小部件除外。考慮到瀏覽器的開發者控制檯,我看到以下錯誤,這對我來說是一種隱祕的方式。

Uncaught TypeError: Cannot read property 'filter' of undefined 
at exports.OutputBinding.shinyBinding.find (htmlwidgets.js:475) 
at a (shiny.min.js:3) 
at f (shiny.min.js:3) 
at initShiny (shiny.min.js:3) 

我也在RStudio之外運行它,以確保同樣的錯誤。

我已經測試過2個獨立的軟件包,所以它似乎是我身邊的系統性錯誤。

通過檢查瀏覽器中正在運行的應用程序,我看到下面的div被創建。但是,我找不到提交的數據。

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

在我看來「有關」 HTMLWidget 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) 
} 

和控件調用:

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

希望任何人都可以幫幫我。謝謝!!!

P.S:R和套餐均達到最新的,我的操作系統是Windows 10

回答

相關問題