2015-10-06 4 views
1

Я пытаюсь включить HTML в блестящую функцию textInput(). Более конкретно я хочу включить изображение рядом с текстом, который отображается в виджетах. Следующее было написано в ui.R:R Shiny: используйте HTML внутри функций (например, textInput, checkboxGroupInput)

shinyUI(navbarPage("Page Title",theme = shinytheme("united"), 
    tabPanel("Panel title",   
    sidebarLayout(
     sidebarPanel(

     textInput("textInputObject", c("Input Header", tags$span(HTML("<img src='http://www2.psd100.com/ppp/2013/10/0401/Blue-question-mark-icon-1004195336.png', title='help', alt='' />"))), value = "put text here"), 

     checkboxGroupInput("checkbInp", "Checkbox Header", 
          c("Checkbox1 [?]"   = "check1"   , 
           "Checkbox2 [?]"   = "check2"   , 
           "Checkbox3 [?]"   = "check3")   , 
          selected = c("check1")) 
) 
) 

Это дает мне:

enter image description here

Есть 2 проблемы:

  1. я смог включить изображение в заголовке textInput. Однако он должен показывать только «Input Header», а затем изображение. Как вы видите на картинке, также отображается «span» от tags$span. Как я могу это решить?

  2. Я понятия не имею, как включить изображение в checkboxGroupInput. Предполагается заменить «[?]» (См. Изображение)

Спасибо!

ответ

2

для # 1 вы можете легко исправить это с помощью list до HTML вызова. Для # 2 немного сложнее, так как вам, вероятно, потребуется написать весь checkbox. Возможно, если бы вы могли объявить отдельные, как я, это было бы хорошо?

rm(list = ls()) 
library(shiny) 
library(shinythemes) 

ui <- navbarPage("Page Title",theme = shinytheme("united"), 
       tabPanel("Panel title",   
          sidebarLayout(
          sidebarPanel(
           textInput("textInputObject", 
             c("Input Header",list(HTML("<img src='http://www2.psd100.com/ppp/2013/10/0401/Blue-question-mark-icon-1004195336.png'/>"))), value = "put text here"), 
           checkboxInput("checkbInp",c("Checkbox1",list(HTML("<img src='http://www2.psd100.com/ppp/2013/10/0401/Blue-question-mark-icon-1004195336.png'/>"))), value = T), 
           checkboxInput("checkbInp2",c("Checkbox2",list(HTML("<img src='http://www2.psd100.com/ppp/2013/10/0401/Blue-question-mark-icon-1004195336.png'/>")))), 
           checkboxInput("checkbInp3",c("Checkbox3",list(HTML("<img src='http://www2.psd100.com/ppp/2013/10/0401/Blue-question-mark-icon-1004195336.png'/>")))) 
          ), 
          mainPanel()) 
       ) 
) 
server <- function(input, output) {} 
shinyApp(ui, server) 

enter image description here

+0

Это работает, но он отлично работает. До сих пор я не нашел лучшего решения. –

0

Если продолжительность тега не требуется, просто попробовать, как это:

textInput("textInputObject", c("Input Header", tags$img(src = "http://www2.psd100.com/ppp/2013/10/0401/Blue-question-mark-icon-1004195336.png", title = "help", alt = ""), value = "put text here") 
+0

Я пробовал раньше. К сожалению, это приведет к тому, что в результате HTML-страницы не будет отображаться изображение, но ** Входной заголовок img http://www2.psd100.com/ppp/2013/10/0401/Blue-question-mark-icon-1004195336. png help ** –

+0

К сожалению, у меня нет возможности проверить его прямо сейчас, но вы можете попробовать 'tags $ span (теги $ img (src =" http://www2.psd100.com/ppp/2013/10 /0401/Blue-question-mark-icon-1004195336.png ", title =" help ", alt =" "))' или просто 'c (" Input Header "," ")' – Nicolae

+0

Спасибо за усилия. Боюсь, ни одно из предложений не будет работать. Первое решение будет производить те же проблемы, что и изначально: «Область заголовка ввода», а затем отправить изображение. Второе решение покажет тег HTML, как есть: «Входной заголовок « –

Смежные вопросы