在R Shiny App中使标签可见但无法访问

时间:2016-08-23 08:15:50

标签: r shiny

我有这个应用程序正在使用4Gb RAM Shiny服务器,但我也将它上传到shinyapps.io(仅限1Gb RAM)。问题是其中一个选项卡将始终使应用程序崩溃。实际上,此选项卡需要超过1Gb的RAM才能运行。

所以我想知道是否有办法让应用程序喜欢它,用户可以看到所有标签(所以他知道应用程序可以用一台好的服务器做什么)。但也要使其中一个标签无法访问。我的意思是用户可以浏览所有选项卡,除非他超出特定的崩溃选项卡,有一些没有为用户弹出的输入标志。所以他不能单击此选项卡,但他仍然可以看到它。

谢谢,我认为这是不可能的,但我们永远不会知道!也许有一些Javascript或CSS!

我的所有标签都是这样的:

enter image description here

1 个答案:

答案 0 :(得分:0)

有点破解但是工作的例子

的想法

1)将id添加到所有选项卡和hrefs(为其创建函数)

2)禁用它

实施例

在动作按钮上禁用选项卡表(我不知道如何估计“好的服务器”,因此禁用了制表符)

library(shiny)
library(shinyjs)


server<-shinyServer(function(input, output) {
  observeEvent(input$disable,{
    disable("Table")
    disable("Table_")
  })

})
add_id=function(ss){

  ss$children[[1]]$children=lapply(ss$children[[1]]$children,function(i){
    i$attribs=list(id=i$children[[1]]$attribs["data-value"][[1]])
    i$children[[1]]$attribs=c(i$children[[1]]$attribs,id=paste0(i$children[[1]]$attribs["data-value"][[1]],"_"))
    return(i)
  })
  return(ss)
}


ui<-shinyUI(fluidPage(
    useShinyjs(),
    actionButton("disable","disable"),
    add_id(tabsetPanel(
      tabPanel("Plot", h1("1")), 
      tabPanel("Summary", h1("2")), 
      tabPanel("Table", h1("3"))
    ))

))
runApp(list(ui=ui,server=server))