Modals | R Documentation |
Modal windows are similar to popups but are rendered within the original window. They can contain any combination of shiny inputs, shiny outputs, and html. Possible uses include extra controls that you don't want cluttering up the main app display or help pages to explain your apps operation.
Use bsModal
in your UI to create a modal window. It works
like Collapses
or tabPanel
, any non-named arguments
will be passed as content for the modal.
Create a button or link and assign its inputId
as the trigger
in bsModal
.
There are only two functions in the Modals family:
bsModal
Used in the UI to create a modal window.
toggleModal
Used in the Server logic to open or close a modal window programmatically.
There is now a toggle
argument in toggleModal
that allows
you to specify whether you want the modal to open or close.
The size
argument in bsModal
allows you to specify the
size of the modal window. Either small
or large
.
Run bsExample("Modals")
for an example
of Modals
functionality.
Other Modals: bsModal
;
toggleModal
library(shiny) library(shinyBS) app = shinyApp( ui = fluidPage( sidebarLayout( sidebarPanel( sliderInput("bins", "Number of bins:", min = 1, max = 50, value = 30), actionButton("tabBut", "View Table") ), mainPanel( plotOutput("distPlot"), bsModal("modalExample", "Data Table", "tabBut", size = "large", dataTableOutput("distTable")) ) ) ), server = function(input, output, session) { output$distPlot <- renderPlot({ x <- faithful[, 2] bins <- seq(min(x), max(x), length.out = input$bins + 1) # draw the histogram with the specified number of bins hist(x, breaks = bins, col = 'darkgray', border = 'white') }) output$distTable <- renderDataTable({ x <- faithful[, 2] bins <- seq(min(x), max(x), length.out = input$bins + 1) # draw the histogram with the specified number of bins tab <- hist(x, breaks = bins, plot = FALSE) tab$breaks <- sapply(seq(length(tab$breaks) - 1), function(i) { paste0(signif(tab$breaks[i], 3), "-", signif(tab$breaks[i+1], 3)) }) tab <- as.data.frame(do.call(cbind, tab)) colnames(tab) <- c("Bins", "Counts", "Density") return(tab[, 1:3]) }, options = list(pageLength=10)) } ) ## Not run: runApp(app) ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.