R 将数据表放入shinyjs模式
我正在使用闪亮的语义库使应用程序看起来很漂亮。使用showModal(modalDialog())的标准闪亮弹出消息不适用于语义UI,因此我求助于shinyjs使用一些javascript来允许modals。在全局定义js模式的情况下,如何将datatable集成到模式中?下面是一个简单的例子:R 将数据表放入shinyjs模式,r,shiny,shinyjs,R,Shiny,Shinyjs,我正在使用闪亮的语义库使应用程序看起来很漂亮。使用showModal(modalDialog())的标准闪亮弹出消息不适用于语义UI,因此我求助于shinyjs使用一些javascript来允许modals。在全局定义js模式的情况下,如何将datatable集成到模式中?下面是一个简单的例子: library(shiny) library(shinyjs) library(shiny.semantic) library(DT) modal.js = "$('.ui.modal') .moda
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))
库(闪亮)
图书馆(shinyjs)
库(shinny.semantic)
图书馆(DT)
modal.js=“$('.ui.modal'))
.modal('show')
;"
服务器我今天遇到了同样的问题,并设法找到了解决方法。当模式在shinny.semantic
中打开时,datatable输出仍然被归类为不可见。要解决此问题,只需在JavaScript中添加一行额外内容:
$('#my_table').show().trigger('shown');
如果要在关闭时再次隐藏它,则需要添加更多的JS,但在UI中使用tags$script()
可能比在服务器中更好
更新的应用程序:
library(shiny)
library(shinyjs)
library(shiny.semantic)
library(DT)
modal.js <- "$('.ui.modal').modal('show');
$('#my_table').show().trigger('shown');"
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"),
div(class = "content", div(class = "ui raised segment", DT::dataTableOutput("my_table")))
),
div(class = "ui basic button action-button", id = "open_modal", "Open modal ui")
)
shinyApp(ui, server, options = list(launch.browser = TRUE))
库(闪亮)
图书馆(shinyjs)
库(shinny.semantic)
图书馆(DT)
modal.js放入dataTableOutput
output$my_table = DT::renderDataTable({
datatable(head(iris), class = "compact", escape = FALSE) })