Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript shinyBS中的动态弹出框或工具提示_Javascript_R_Shiny_Shinybs - Fatal编程技术网

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

Javascript shinyBS中的动态弹出框或工具提示,javascript,r,shiny,shinybs,Javascript,R,Shiny,Shinybs,想法 我在一个闪亮的应用程序中有一个box()。框()包括一个标题参数(该参数又包括一个图标)和一个选择输入()元素。在胡佛的图标上,我想有一个工具提示(使用tipify())或一个弹出框(使用popify()),根据selectInput()输入生成title或content参数(或两者) 问题 无论是tipify()还是popify()都不能正确地将textOutput()作为其标题或内容参数来实现。它们需要一个字符串,所以我尝试使用reactiveValues()元素作为函数参数,但也失败

想法

我在一个闪亮的应用程序中有一个
box()
框()
包括一个
标题
参数(该参数又包括一个
图标
)和一个
选择输入()
元素。在胡佛的
图标上,我想有一个工具提示(使用
tipify()
)或一个弹出框(使用
popify()
),根据
selectInput()
输入生成
title
content
参数(或两者)

问题

无论是
tipify()
还是
popify()
都不能正确地将
textOutput()
作为其
标题或
内容
参数来实现。它们需要一个字符串,所以我尝试使用
reactiveValues()
元素作为函数参数,但也失败了

问题

只需使用
r
,工具提示或popover内容是否可以变得动态?这怎么可能呢

我怀疑它可以通过
JavaScript
实现,但我对它知之甚少

代码

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

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)

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

可以做的是完全在服务器端创建标题。这样,您就可以将其动态化。这可以为您提供此类应用程序:

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)
库(“闪亮”)
图书馆(“shinydashboard”)
图书馆(“shinyBS”)

ui很奇怪,但是如果您选择选项1并查看工具提示,然后更改选项2,工具提示中没有显示任何内容(可能只是在我的R中),您必须等待一段时间,因为更新是通过
观察({})
完成的。但它肯定在我的R中工作。你能重试并确认plz吗?代码确实工作,因此是问题的解决方案。事实上,这一进程相对缓慢,仍有改进的余地。谢谢你的回答。我不知道你是否能改进很多。如果将图标设置为动态的
图标(name=ifelse(输入$SELECT==“Option1”、“info circle”、“ban”)
,结果几乎是即时的。似乎文本在快速更新时遇到了更多问题。
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)