У меня была такая же проблема сегодня, и мне удалось найти способ ее решить. Когда модальное окно открывается в shiny.semantic
, вывод данных с данными все еще классифицируется как невидимый. Чтобы это исправить, вам просто нужно добавить в JavaScript дополнительную строку:
$('#my_table').show().trigger('shown');
Вам нужно будет добавить еще несколько JS, если вы хотите снова скрыть их при закрытии, но это может быть лучше в пользовательском интерфейсе, использующем 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))