3

我想将工具提示添加到我的操作按钮或带有包shinyBS和功能的滑块tipify。我为工具提示的“标题”参数添加了一个文本。但是,当我的文本有撇号(单引号)时,会出现错误。actionButton 本身的标签不会发生这种情况!

library(shiny); library(shinyBS)
shinyApp(ui = basicPage(p("title"), uiOutput("button_with_tooltip"), uiOutput("input_slider")),
         server = function(input, output, session){
              output$button_with_tooltip = renderUI({
                   tipify(actionButton("button", label="I'm doing nothing"), title="I am doing nothing")})})

如果您将工具提示标题从"I am"更改为"I'm",它将不会显示。

这个错误的更令人惊讶的行为后果是,当工具提示的标题中有一个单引号时inputSlider,它们会自动将自己转换为一个numericInput......奇怪!尝试这个:

shinyApp(
     ui = basicPage(p("title"), uiOutput("input_slider")),
     server = function(input, output, session){
          output$input_slider = renderUI({
               tipify(sliderInput("slider", label="I'm a simple slider", min=0, max=10, value=5), title="I'm doing nothing")
          })})

为什么会发生这种情况,我该如何覆盖它?谢谢,

注意:我是法国人,所以我需要撇号

谢谢,

4

2 回答 2

2

看起来这是在 GitHub 上的最新版本中修复的错误:

但是最新的 CRAN 版本有点旧(2015-03-31)。我在 GitHub 上安装了最新版本并运行该应用程序没有问题。

devtools::install_github("ebailey78/shinyBS@shinyBS3")

tipify通过在页面上嵌入 JavaScript 添加工具提示。问题是 JavaScript 代码是用单引号字符串构造的,但字符串内容没有被转义。这会导致 JavaScript 解析错误,这就是滑块看起来像普通<input>元素的原因。

您可以使用@akrun 显示的反斜杠转义撇号,或者使用 HTML 转义它&#39;

于 2017-11-26T17:31:20.390 回答
1

我们可以逃跑\\'

library(shiny)
library(shinyBS)
shinyApp(
  ui = basicPage(p("title"), uiOutput("input_slider")),
  server = function(input, output, session){
          output$input_slider = renderUI({
        tipify(sliderInput("slider", label="I'm a simple slider",
             min=0, max=10, value=5), title="I\\'m doing nothing")
})})

- 输出

在此处输入图像描述

于 2017-11-26T15:28:11.903 回答