web-dev-qa-db-fra.com

Liens cliquables dans Shiny Datatable

J'ai créé un tableau contenant des liens HTML à l'aide de renderDataTable de Shiny. Les liens ne sont pas cliquables, cependant, au lieu de cela, ils s'affichent littéralement:

https://samizdat.shinyapps.io/zakazky/

Avez-vous une idée de ce qui pourrait mal se passer? Cela a bien fonctionné avant de mettre à niveau Shiny vers la version 0.11 ... Merci!

27
Petr Kočí

J'ai eu le même problème. Le escape = FALSE L'option pour renderDataTable l'a résolu, comme vous l'avez mentionné dans les commentaires.

Voici le code complet d'une application avec une table qui a des liens.

Si vous faites cela, vous souhaiterez que chaque lien soit unique en fonction d'une valeur dans le tableau. Je déplace ce code dans une fonction pour qu'il soit plus propre.

#app.R#

library(shiny)

createLink <- function(val) {
  sprintf('<a href="https://www.google.com/#q=%s" target="_blank" class="btn btn-primary">Info</a>',val)
}

ui <- fluidPage(  
  titlePanel("Table with Links!"),
  sidebarLayout(
    sidebarPanel(
      h4("Click the link in the table to see
         a google search for the car.")
    ),
    mainPanel(
      dataTableOutput('table1')
    )
  )
)

server <- function(input, output) {

  output$table1 <- renderDataTable({

    my_table <- cbind(rownames(mtcars), mtcars)
    colnames(my_table)[1] <- 'car'
    my_table$link <- createLink(my_table$car)
    return(my_table)

  }, escape = FALSE)
}

shinyApp(ui, server)
36
williamsurles