2015-01-23 22 views
18

Shiny's renderDataTable kullanarak bazı HTML bağlantılarını içeren bir tablo oluşturdum.Parlak Datatable içinde tıklanabilir bağlantılar

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

yanlış ne olabilir bir fikrin var mı: bağlantılar bunun yerine anlamıyla hale olsa da, tıklanabilir değil mi? Parlaklık sürüm 0.11'e yükseltmeden önce iyi çalıştı ... Teşekkürler!

+1

sizin çalıştı kodu – HaveNoDisplayName

+0

dahil bu temel tablodaki ne olduğunu biliyor: '

' –

+5

sayesinde ben çözüm buldum. Shiny'deki renderDataTable işlevinin bir argüman kaçışına sahip. Yeni sürümde en çok varsayılan olarak TRUE olarak ayarlandı. Onu değiştirdiğimde tekrar çalışır. Daha fazla bilgi: http://shiny.rstudio.com/reference/shiny/latest/renderDataTable.html –

cevap

27

Aynı problem vardı. CommentDataTable için escape = FALSE seçeneği, yorumlarda belirtildiği gibi çözdü.

Bağlantılar içeren bir tablo içeren bir uygulamanın tam kodu İşte.

Bunu yapıyorsanız, her bağlantının tablodaki bir değere göre benzersiz olmasını istersiniz. Bu kodu bir işlev haline getirdim, böylece temizleyici. Bu hat gerçekten gerek yok bana önerir sana zorluk yaşıyorsanız düşünüyorum alanının görüntüsünü yapıyor tarayıcımda itilmiş olur kod okurken

#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

Hata ayıklama burada biter için başka bir not: Bu örnekte 'my_table' bir datatable nesnesi ise, bunun kaçışının = FALSE seçeneğinin de olduğundan emin olmanız gerekir (sadece renderDataTable için çalışma ayarlama). sonra basit bir düzeltme my_table <-datatable olur (my_table, escape = F) –