具有动态renderUI的R闪亮JavaScript事件

时间:2018-06-20 20:13:46

标签: javascript r events shiny shinyjs

我有一个TabPanel,其中包含几个表,这些表是通过renderUI / uiOutput动态创建的。呈现所有内容后,应执行JavaScript函数。

ui <- fluidPage(mainPanel(
      tabsetPanel(type = "tabs",
        tabPanel("Results", uiOutput("resultsContainer"))
    )))

在服务器功能中:

  output$resultsContainer  <- renderUI({

    numberOfGroups <- some Input somewhere
    data <- get data from somewhere

    //Split data into groups
    grouped <- split(rownames(data), data)

    //Create list of tables (divs)
    table_output_list <- lapply(1:numberOfGroups, function(i) {
      div(
        renderTable({
          data <- data.frame(grouped[i])
          }),
        style = "display: inline-block;vertical-align:top;")
    })
    table_output_list
  })

在包含的JavaScript文件中,我收听了该事件:

$(document).on("shiny:value", function(e) {
  if (e.name == "resultsContainer") { 
    e.preventDefault();
    $("#resultsContainer").html(e.value);
    executeCustomCodeWhichHandlesOutputTables();
  }
});

由于某种原因,这不起作用,我没有输出。如果删除e.preventDefault();,则输出在那里,但是javascript无法正常工作,我猜该事件被调用了几次(?),而不仅是在一切完成之后。 相同的方法对于单个tableOutput / renderTable来说效果很好。

0 个答案:

没有答案