单击下载按钮后如何关闭闪亮的模式框
How to close shiny modal box after clicking on downloadButton
我有一个 actionButton,单击它会打开一个模态对话框,提供一条小消息,让用户有机会下载数据或取消。当点击下载按钮时,downloadHandler被适当触发,数据下载成功。但是,我不知道 where/how 包括 removeModal()
。我希望弹出的模态对话框在点击下载按钮时自动关闭。
library(shiny)
library(data.table)
data = data.frame(x=rnorm(10),y=rnorm(10))
get_download_handler <- function(fname, data) {
downloadHandler(
filename = function() paste0(fname, '.csv'),
content = function(con) data.table::fwrite(data, con)
)
}
ui <- fluidPage(
actionButton(inputId = "dwnld",label = "Download Data")
)
server <- function(input, output, session) {
observeEvent(input$dwnld, {
showModal(modalDialog(
title="Download",
"<Disclaimer Text>",
footer = tagList(
downloadButton(outputId = "dwnld_data","Download Data"),
modalButton("Cancel")
),easyClose = TRUE
))
})
output$dwnld_data <-get_download_handler(fname="data",data)
}
shinyApp(ui, server)
你可以这样做:
library(shiny)
library(data.table)
data = data.frame(x = rnorm(10), y = rnorm(10))
ui <- fluidPage(
actionButton(inputId = "dwnld", label = "Download Data")
)
server <- function(input, output, session) {
observeEvent(input$dwnld, {
showModal(modalDialog(
title = "Download",
"<Disclaimer Text>",
footer = tagList(
downloadButton(outputId = "dwnld_data", "Download Data"),
modalButton("Cancel")
),
easyClose = TRUE
))
})
output$dwnld_data <- downloadHandler(
filename = "data.csv",
content = function(con){
on.exit(removeModal())
data.table::fwrite(data, con)
}
)
}
shinyApp(ui, server)
我有一个 actionButton,单击它会打开一个模态对话框,提供一条小消息,让用户有机会下载数据或取消。当点击下载按钮时,downloadHandler被适当触发,数据下载成功。但是,我不知道 where/how 包括 removeModal()
。我希望弹出的模态对话框在点击下载按钮时自动关闭。
library(shiny)
library(data.table)
data = data.frame(x=rnorm(10),y=rnorm(10))
get_download_handler <- function(fname, data) {
downloadHandler(
filename = function() paste0(fname, '.csv'),
content = function(con) data.table::fwrite(data, con)
)
}
ui <- fluidPage(
actionButton(inputId = "dwnld",label = "Download Data")
)
server <- function(input, output, session) {
observeEvent(input$dwnld, {
showModal(modalDialog(
title="Download",
"<Disclaimer Text>",
footer = tagList(
downloadButton(outputId = "dwnld_data","Download Data"),
modalButton("Cancel")
),easyClose = TRUE
))
})
output$dwnld_data <-get_download_handler(fname="data",data)
}
shinyApp(ui, server)
你可以这样做:
library(shiny)
library(data.table)
data = data.frame(x = rnorm(10), y = rnorm(10))
ui <- fluidPage(
actionButton(inputId = "dwnld", label = "Download Data")
)
server <- function(input, output, session) {
observeEvent(input$dwnld, {
showModal(modalDialog(
title = "Download",
"<Disclaimer Text>",
footer = tagList(
downloadButton(outputId = "dwnld_data", "Download Data"),
modalButton("Cancel")
),
easyClose = TRUE
))
})
output$dwnld_data <- downloadHandler(
filename = "data.csv",
content = function(con){
on.exit(removeModal())
data.table::fwrite(data, con)
}
)
}
shinyApp(ui, server)