2015-01-23 4 views
18

Я создал таблицу, содержащую некоторые HTML-ссылки, используя Shind's renderDataTable. Ссылки не кликабельны, однако, вместо этого они делают буквально:Доступные ссылки в Shiny Datatable

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

Есть ли у вас какие-либо идеи, что может быть не так? Он отлично работал, прежде чем обновлять Shiny до версии 0,11 ... Спасибо!

+1

включает ваш попробовал код – HaveNoDisplayName

+0

Как я прочитал код, который получает толкнул в браузер эта строка делает отображение области, я думаю, что вы испытываете трудности с, что наводит на мысль мне, что нам действительно нужно знать, что находится в этой базовой таблице: '

' –

+5

Спасибо, я нашел решение. Функция renderDataTable в Shiny имеет выход из аргумента. По умолчанию в новой версии было установлено значение TRUE по умолчанию. Когда я меняю его, он работает снова. Дополнительная информация: http://shiny.rstudio.com/reference/shiny/latest/renderDataTable.html –

ответ

27

У меня была та же проблема. Опция escape = FALSE для renderDataTable решила ее, как вы упомянули в комментариях.

Вот полный код для приложения со столом со ссылками.

Если вы делаете это, вы захотите, чтобы каждая ссылка была уникальной на основе значения в таблице. Я перемещаю этот код в функцию, чтобы его очиститель.

#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) 
+0

Еще одна заметка для тех, кто заканчивает здесь отладку: if 'my_table' в этом примере - это объект с данными, вам нужно убедиться, что у него есть опция escape = FALSE (только установка для renderDataTable не работает). то простым решением будет my_table <-datatable (my_table, escape = F) –

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