我在R Shiny中构建了一个数据表,它的一部分将包括每个单元格特有的工具提示。我已经完成了这一点,但是,我似乎无法将HTML内容插入到工具提示本身。在下面的示例中,我将HTML内容插入到数据表的一个单元格中,然后将相同的内容插入到工具提示中,但HTML只呈现在数据表中,而不是工具提示中。
我已经尝试了一些想法,但没有找到任何工作。我可以让HTML出现(作为文本),但是很明显,它被转义了,只是文本。我可以使用标签$b在工具提示中加粗文本(),但是,我希望有一个与下面的示例更相似的解决方案,因为除了文本之外,我还想向工具提示中添加更复杂的HTML内容。
有什么主意吗?非常感谢!
library(shiny)
library(shinyBS)
library(DT)
ui <- fluidPage(
bsTooltip('tbutton',''),
mainPanel(dataTableOutput('df'))
)
server <- function(input, output) {
df <- data.frame(A = c(1:5), B = c(LETTERS[1:5]))
output$df <- renderDataTable({
cell <- paste0('<svg width="30" height="30">',
'<text x="1%" y="75%" font-weight="bold" font-size="16" >B</text>',
'</svg>')
df[2,2] <- as.character(popify(tags$div(HTML(cell)),
title = 'Tooltip:',
placement = 'left',
content = paste0(tags$div(HTML(cell))),
trigger = c('hover', 'click')))
datatable(df, escape=FALSE)
})
}
shinyApp(ui = ui, server = server)
1条答案
按热度按时间bqucvtff1#
要将弹出窗口附加到单元格,如果此单元格具有
id
,则可以使用bsPopover
。要将id
设置到单元格,可以使用datatables选项createdCell
。然后HTML代码可以在弹出窗口内容中工作,但不能在SVG中工作(或者至少我没有设法使它工作)。