Modals {shinyBS} | R Documentation |
Modals
Description
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.
Details
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
.
Components
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.
Changes
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
.
Note
Run bsExample("Modals")
for an example
of Modals
functionality.
See Also
Other Modals: bsModal
;
toggleModal
Examples
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)