【发布时间】:2018-10-11 09:46:54
【问题描述】:
我将 Shiny 与 Shiny Semantic 库一起使用,以使应用看起来更漂亮。使用 showModal(modalDialog()) 的标准 Shiny 弹出消息不适用于语义 UI,所以我求助于 shinyjs 来使用一些 javascript 来允许模态。使用全局定义的 js 模态,如何将数据表集成到模态中?这是一个最小的例子:
library(shiny)
library(shinyjs)
library(shiny.semantic)
library(DT)
modal.js = "$('.ui.modal')
.modal('show')
;"
server <- function(input, output, session) {
output$my_table = DT::renderDataTable({
head(iris)
})
observeEvent(input$open_modal, {
runjs(modal.js)
})
}
ui <- semanticPage(
suppressDependencies("bootstrap"),
useShinyjs(),
div(class = "ui modal",
div(class="header", 'Modal header'),
p('Placing DT::dataTableOutput("my_table") here fails.
If it was displayed, I would select a row and return the value to a reactiveValue.')
),
div(class = "ui basic button action-button", id = "open_modal", "Open modal ui"),
div(class = "ui raised segment", DT::dataTableOutput("my_table"))
)
shinyApp(ui, server, options = list(launch.browser = TRUE))
【问题讨论】: