Description Details Components Changes Note See Also Examples
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:
bsModalUsed in the UI to create a modal window.
toggleModalUsed 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | 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.