2015-01-23 21 views
18

में क्लिक करने योग्य लिंक मैंने चमकदार रेंडरडेटाटेबल का उपयोग करके कुछ HTML लिंक वाली एक तालिका बनाई है। लिंक, क्लिक करने योग्य नहीं हैं, हालांकि, इसके बजाय उन्हें सचमुच प्रस्तुत करना:चमकदार डेटाटेबल

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

आप किसी भी विचार है कि क्या गलत हो सकता है? शाइन को संस्करण 0.11 में अपग्रेड करने से पहले यह ठीक काम करता है ... धन्यवाद!

+1

जैसा कि मैंने कोड है कि अपने ब्राउज़र को पुश होने पर इस लाइन क्षेत्र मुझे लगता है कि आप के साथ कठिनाई हो रही है, जो मेरे लिए पता चलता है कि हम वास्तव में करने की आवश्यकता है के प्रदर्शन कर रही है पढ़ अपने कोशिश की कोड – HaveNoDisplayName

+0

शामिल पता है कि उस अंतर्निहित तालिका में क्या है: '

' –

+5

धन्यवाद, मुझे समाधान मिला है। Shiny में renderDataTable फ़ंक्शन एक तर्क से बचने के लिए है। यह नए संस्करण में डिफ़ॉल्ट रूप से TRUE के लिए सबसे अधिक सेट सेट था। जब मैं इसे बदलता हूं, यह फिर से काम करता है। अधिक जानकारी: http://shiny.rstudio.com/reference/shiny/latest/renderDataTable.html –

उत्तर

27

मुझे एक ही समस्या थी। 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) 
+0

जो भी यहां डीबगिंग समाप्त होता है, उसके लिए एक और नोट: यदि इस उदाहरण में 'my_table' एक डेटाटेबल ऑब्जेक्ट है, तो आपको यह सुनिश्चित करना होगा कि यह बच निकला है = FALSE विकल्प भी (केवल इसे प्रस्तुत करने के लिए इसे सेट करने के लिए सेट करें)। तो एक साधारण फिक्स my_table <-datatable होगा (my_table, escape = F) –