Fab*_*ing 6 r modal-dialog shiny
是否可以在闪亮的情况下打开多个对话框?
在下面的应用程序中,我想显示一个模态对话框,它本身可以打开另一个“详细信息”模态对话框。这很有效,但只要打开“详细信息”对话框,第一个对话框就会消失。
我想在第一个对话框的“顶部”打开第二个对话框,每当我关闭第二个对话框时,我都想再次看到第一个对话框。
我将如何用闪亮的方式做到这一点?
library(shiny)
ui <- basicPage({
actionButton("openDialog", "Open dialog")
})
server <- function(input, output, session) {
observeEvent(input$openDialog, {
showModal(
modalDialog(
actionButton("openDetails", "OpenDetails")
)
)
})
observeEvent(input$openDetails, {
showModal(modalDialog(div("Test")))
})
}
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)
小智 7
这并不完全是您想要的,但您始终可以在第二个模型关闭后恢复第一个模态。为此,请在library(shiny)语句之后添加一个函数来显示第一个模型:
library(shiny)
showFirstModal <- function() {
showModal(
modalDialog(
actionButton("openDetails", "OpenDetails")
)
)
}
Run Code Online (Sandbox Code Playgroud)
然后将调用第一个模态的观察事件代码更改为调用该函数的代码:
observeEvent(input$openDialog, {
showFirstModal()
})
Run Code Online (Sandbox Code Playgroud)
然后,在创建第二个模式时,强制用户点击您自己的操作按钮将其关闭。这将允许您监视该模式的关闭,然后恢复第一个模式:
observeEvent(input$openDetails, {
showModal(modalDialog(div("Test"),
easyClose=FALSE,
footer = actionButton("restoreModal",label = "Dismiss")))
})
Run Code Online (Sandbox Code Playgroud)
最后,调用该函数以在按下关闭按钮时重新显示第一个模态:
observeEvent(input$restoreModal, {
showFirstModal()
})
Run Code Online (Sandbox Code Playgroud)
如果您确实想在彼此的顶部显示多个模态框(这可能看起来很混乱),您可以手动创建模态框(有关如何完成此操作的信息,请参阅https://www.w3schools.com/howto/howto_css_modals.asp ) 。
| 归档时间: |
|
| 查看次数: |
873 次 |
| 最近记录: |