visnetwork节点标题内的闪亮动作按钮

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了visnetwork节点标题内的闪亮动作按钮相关的知识,希望对你有一定的参考价值。

我试图在visNetwork节点中嵌入一个操作按钮,以便通过单击工具提示中的按钮启动操作。

我可以让按钮显示在节点标签内,但单击时不会触发任何事件。我哪里错了?

最小的例子:

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'>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事件即可。在那里你可以触发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事件绑定到除动作按钮之外的其他对象。 (也只是圆圈而不是弹出窗口)。

以上是关于visnetwork节点标题内的闪亮动作按钮的主要内容,如果未能解决你的问题,请参考以下文章

闪亮,两个动作按钮,它只响应第二个按钮而不响应第一个按钮

r 闪亮的动作按钮

使用闪亮动作按钮在两个表之间循环

类内的按钮动作选择器

在智能手机上使用,闪亮的交互式情节无法理解手指动作

r闪亮ui中for循环内的逗号