Вы можете создать событие onclick
с помощью shinyjs
.Поэтому вам нужно добавить useShinyjs()
в ваш пользовательский интерфейс, что вы можете сделать, поместив ваш пользовательский интерфейс в tagList
.
Функция onclick
запускается на вашем сервере при нажатии на элемент с данным идентификатором.Так что вам также нужно дать valueBox
идентификатор.Я решил обернуть его в div
с идентификатором.
Следующая часть - создать всплывающее окно при каждом запуске события onclick
.Это можно сделать с помощью функции showModal
из shinyBS
.
Рабочий пример
library(shiny)
library(shinydashboard)
library(shinyjs)
library(shinyBS)
data <- iris
ui <- tagList(
useShinyjs(),
dashboardPage(
dashboardHeader(title = "Telemedicine HP"),
dashboardSidebar(),
dashboardBody(
fluidRow(
div(id='clickdiv',
valueBox(60, subtitle = tags$p("Attended", style = "font-size: 200%;"), icon = icon("trademark"), color = "purple", width = 4, href = NULL)
)
)
)
)
)
server <- function(input, output, session){
onclick('clickdiv', showModal(modalDialog(
title = "Your title",
renderDataTable(data)
)))
}
shinyApp(ui, server)