首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >shinyBS中的动态弹出或工具提示

shinyBS中的动态弹出或工具提示
EN

Stack Overflow用户
提问于 2016-09-09 11:01:50
回答 1查看 1.6K关注 0票数 3

The idea

我在一个闪闪发亮的应用程序中有一个box()box()包括一个title参数(依次包括一个icon)和一个selectInput()元素。在胡佛icon上,我希望有一个工具提示(使用tipify())或一个弹出器(使用popify()),根据selectInput()输入生成titlecontent参数(或两者兼有)。

问题

tipify()popify()都没有正确地实现textOutput()作为它们的titlecontent参数。它们需要一个字符串,所以我尝试使用一个reactiveValues()元素作为函数参数,但它也失败了。

问题

仅仅使用r就能使工具提示或弹出内容动态化吗?这是怎么做到的呢?

我怀疑这可以用JavaScript来完成,但我对此知之甚少。

代码

尝试1-失败-显示代码而不是实际文本

代码语言:javascript
复制
library("shiny")
library("shinydashboard")
library("shinyBS")

ui <- fluidPage(
 box(
   title = span("My box",
                tipify(el = icon(name = "info-circle", lib = "font-awesome"), title = textOutput("TIP"))),
   selectInput(
     inputId = "SELECT",
     label = NULL,
     choices = c("Option1" = "Option1",
                 "Option2" = "Option2"
     ),
     multiple = FALSE
   )
 )
)
server <- function(input, output, session){
  output$TIP <- renderText({"Helo world!"})
}
shinyApp(ui, server)

尝试2-失败-无法创建UI提示(reactiveValues())尚未定义

代码语言:javascript
复制
library("shiny")
library("shinydashboard")
library("shinyBS")

ui <- fluidPage(
 box(
   title = span("My box",
                tipify(el = icon(name = "info-circle", lib = "font-awesome"), title = TIP$a)),
   selectInput(
     inputId = "SELECT",
     label = NULL,
     choices = c("Option1" = "Option1",
                 "Option2" = "Option2"
     ),
     multiple = FALSE
   )
 )
)
server <- function(input, output, session){
  TIP <- reactiveValues(a = "Hello world!")
}
shinyApp(ui, server)

Here是一个类似的问题,但它不能解决这里描述的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-09 13:12:48

可以做的是完全在服务器端创建标题。这样你就可以让它变得动态了。这可以给你这样的应用程序:

代码语言:javascript
复制
library("shiny")
library("shinydashboard")
library("shinyBS")

ui <- fluidPage(
  box(
    title = uiOutput("title"),
    selectInput(
      inputId = "SELECT",
      label = NULL,
      choices = c("Option1" = "Option1",
                  "Option2" = "Option2"
      ),
      multiple = FALSE
    )
  )
)
server <- function(input, output, session){
  TIP <- reactiveValues()
  observe({
    TIP$a <- ifelse(input$SELECT =="Option1","Hello World","Hello Mars")
  })


  output$title <- renderUI({span("My box",
                   tipify(el = icon(name = "info-circle", lib = "font-awesome"), title = TIP$a))})


}
shinyApp(ui, server)

希望能帮上忙。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39410094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档