7

で構築しAppていましたRshiny

いくつかありますが、 をクリックしたときにポップアップを作成するオプションをinfoBox使用したいと思います。hrefinfoBox

ポップアップ オプションには、shinyBS を使用します。ここに私が試したものがあります:

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 = ""
)

しかしhref、外部の Web サイトにリンクしたい場合にこのオプションが完全に機能することhref = "http://stackoverflow.com/" がわかりましたが、アプリの内部リンクにリンクする方法がわかりませんでした。

編集

valueBox出力リスト内に2つの変数を追加することにより、ボックスをクリック可能にし、それがアクションボタンであると光沢のあるものにするソリューションを見つけたので、この編集を行います。
- クラスaction-button
-id値ボックスがクリックされたことを検出するために、observe または observeEvent を使用できるようにします。

ここに再現可能な例があります

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)
4

3 に答える 3

2

私は悪い変種しか知らない

1) 機能追加 tags$script(HTML("function clickFunction(link){ Shiny.onInputChange('linkClicked',link); }"))

2) valueBox の href の子を編集します。

aa=valueBox(value="22", icon = icon("users","fa-lg",lib="font-awesome"),href="www", width=NULL,color = "light-blue",subtitle = "" ) aa$children[[1]]=a(href="#","onclick"=paste0("clickFunction('","click","'); return false;"),aa$children[[1]]$children)

3) observeEvent(input$linkClicked,{..})

于 2015-12-22T10:30:56.633 に答える