我使用Shiny的renderDataTable创建了一个包含一些HTML链接的表。但是,这些链接不是可点击的,而是按字面意思呈现:
https://samizdat.shinyapps.io/zakazky/
你知道可能出现什么问题吗?在将Shiny升级到版本0.11之前它工作正常...谢谢!
答案 0 :(得分:35)
我遇到了同样的问题。正如您在评论中提到的,renderDataTable的escape = FALSE
选项解决了它。
以下是包含带链接的表的应用的完整代码。
如果您这样做,您将希望每个链接基于表中的值是唯一的。我将此代码移动到一个函数中,使其更清晰。
#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)