用于行名称的Shiny数据表中的工具提示或弹出窗口?

hum*_*opf 5 r tooltip shiny dt

当用户将数据广告的行名称悬停/点击时,我不得不尝试包含类似工具提示或popover的附加信息,因此他们不必查找某些定义,我目前在不同的tabPanel.这是一个有效的例子:

server.R:

library(shiny)
library(DT)
library(shinyBS)

# Define server for the Shiny app
shinyServer(function(input, output,session) {

tdata <- as.data.frame(iris)

# Render table here 
output$mytable <- DT::renderDataTable(DT::datatable(

   tdata[1:5,],

   options = list(paging = FALSE, searching = FALSE, info = FALSE, sort = FALSE,
                 columnDefs=list(list(targets=1:4, class="dt-right")) ),

   rownames = paste("rowname",1:5),

   container = htmltools::withTags(table(
      class = 'display',
      thead(
         tr(lapply(rep(c('ratios','name1', 'name2', 'name3','name4','name5'), 1),th))
      )
   ))
))

}) # end of shinyServer function
Run Code Online (Sandbox Code Playgroud)

ui.R:

library(shiny)
library(DT)
library(shinyBS)

shinyUI(
   mainPanel(
      DT::dataTableOutput("mytable")
   )   
)      
Run Code Online (Sandbox Code Playgroud)

请注意,我已经看到了以下讨论主题,但没有成功: 用于表列的R闪亮鼠标悬停文本,以及在闪亮应用程序中将 引导工具提示添加到列标题 所以我在思考DT-package选项中的某些内容,或者使用shinyBS包的东西(比如'bsTooltip')或添加一些HTML或JS.在数据表中,Shiny似乎没有自然支持这个工具提示/弹出功能......!

Val*_*vić 6

此代码有效,但在客户端模式下运行.为了简单起见,我使用了虹膜数据集的前五行,但我想这个想法很清楚.如果将鼠标悬停在行名称上,将显示工具提示.

ui.R

    library(shiny)
    library(DT)
    shinyUI(
            mainPanel(
                    DT::dataTableOutput("tbl")
            )   
    )    
Run Code Online (Sandbox Code Playgroud)

server.R

    library(shiny)
    library(DT)
    shinyServer(function(input, output,session) {
            output$tbl = DT::renderDataTable(
                    datatable(iris[1:5, ], callback = JS("
                                    var tips = ['First row name', 'Second row name', 'Third row name',
                                    'Fourth row name', 'Fifth row name'],
                                    firstColumn = $('#tbl tr td:first-child');
                                    for (var i = 0; i < tips.length; i++) {
                                    $(firstColumn[i]).attr('title', tips[i]);
                                    }")), server = FALSE)
    }) 
Run Code Online (Sandbox Code Playgroud)