Href Infobox als Actionbutton verwenden

ch baute einApp mitRshiny.

Ich habe ein paarinfoBoxund ich möchte das @ benutzhref Option, um ein Popup zu erstellen, wenn Sie auf das @ klickinfoBox.

Ich verwende shinyBS für die Popup-Optionen. hier ist was ich ausprobiert habe:

valueBox(value=entry_01, icon = icon("users","fa-lg",lib="font-awesome"),href=shinyInput(actionLink,id='button_01',len=1,class="btn btn-default action-button",label=""),
        width=NULL,color = "light-blue",subtitle = ""
)

Aber ich habe herausgefunden, dass diehref -Option funktioniert perfekt, wenn wir auf einer externen Website wie @ verlinken möchthref = "http://stackoverflow.com/" aber ich wusste nicht, wie ich einen internen Link der App einbinden soll.

BEARBEITE

Ich mache diese Änderung, weil ich eine Lösung gefunden habe, die das Kästchen anklickbar und glänzend macht, als wäre es eine Aktionsschaltfläche, indem ich der valueBox-Ausgabeliste zwei Variablen hinzufüge.
- die Klasseaction-button
- Dasidit @ können wir beobachten oder observEvent verwenden, um zu erkennen, wann auf die Wertebox geklickt wird.

Hier ist ein reproduzierbares Beispiel
require(shiny)
require(shinydashboard)


header <- dashboardHeader(title="ReproductibleExample")
sidebar <- dashboardSidebar(disable=T)
body <- dashboardBody(valueBoxOutput("box_01"),
                      textOutput("print"))

ui <- dashboardPage(header, sidebar, body)


server<-shinyServer(function(input, output,session) {

  output$box_01 <- renderValueBox({
  entry_01<-20
  box1<-valueBox(value=entry_01
                 ,icon = icon("users",lib="font-awesome")
                 ,width=NULL
                 ,color = "blue"
                 ,href="#"
                 ,subtitle=HTML("<b>Test click on valueBox</b>")
                 )
    box1$children[[1]]$attribs$class<-"action-button"
    box1$children[[1]]$attribs$id<-"button_box_01"
    return(box1)
  })

  output$print<-renderText({
    print(input$button_box_01)
  })
})



shinyApp(ui,server)

Antworten auf die Frage(6)

Ihre Antwort auf die Frage