Просто добавьте событие onclick
к кнопке. Там вы можете активировать JavaScript и использовать Shiny.oninputchange()
для создания input$test
по желанию. Поскольку input$test
срабатывает только в случае изменения отправляемого вами значения, вы должны Math.random()
генерировать (изменяющееся) случайное значение.
Воспроизводимый пример:
library(shiny)
library(visNetwork)
ui <- fluidPage(
visNetworkOutput("net")
)
server <- function(input, output) {
## minimal nodes and edges example
nodes <- data.frame(id = 1, title = HTML("<button id='test' type='button'
class='btn btn-default action-button' onclick ='Shiny.onInputChange(\"test\",
Math.random());'>test</button>"))
edges <- data.frame(from = c(1,1))
## render the single-node network
output$net = renderVisNetwork(visNetwork(nodes, edges))
## detect when the actionbutton is clicked
observeEvent(input$test, {
print("clicked")
})
}
shinyApp(ui,server)
Примечание:
Я не уверен, какова ваша общая цель, и этот комментарий может быть ненужным, но просто указатель, который вы также можете привязать onclick
события к другим объектам, кроме кнопки действия. (Также просто в круг вместо использования всплывающего окна).