Shiny中的URL生成

时间:2017-08-10 10:59:14

标签: r shiny

我在闪亮的应用程序的输出表中生成托管在(本地)闪亮服务器上的静态HTML页面的链接。由于每次从用户的搜索输入生成表格,我都会根据搜索结果动态创建链接。生成的链接包括对路径的添加(随每个会话而改变):例如, http://myServer.org/myApp/app095c75e71384b9d0dd0018637b10fa00/myStaticPage.html。是否有可能为所有用户和应用会话生成一个稳定的链接,理想情况下,中间没有无意义的字符串?

这是整个应用布局,其中包含用于生成链接的代码段:

#server.R:

dt=read_csv("path/To/data.csv")

shinyServer <- function (input, output) {

 res.table=eventReactive(input$submit, {

  res=dt
  upVal=as.numeric(input$value)
  res=subset(res,res$val>value)
  return(res)

 }

 output$res=DT::renderDataTable({
  res=res.table()

   #processes the name string to extract the reference name in the HTML page
   toLink.fun=function(z){
     if (length(grep("/",z,fixed = T))>0) {
       splitz=strsplit(as.character(z),"/")
       zLink=splitz[[1]][2]
     } else {zLink=z}
     paste0("<a href='",zLink,"_info.html' target='_blank' >",z,"</a>",collapse  = "")
   }

   res[,1]=sapply(res[,1],toLink.fun)
   res=DT::datatable(res, escape=-2)

   return(res)
  })

}

#ui.R:

sidebarPanel(
 fluidRow(sliderInput("value", label="min value", min=10, max=1000, value="100")),
 fluidRow(actionButton(inputId="submit", label="submit"))
),

mainPanel(DT::dataTableOutput('res'))

0 个答案:

没有答案