【问题标题】:disabling/enabling sidebar from server side从服务器端禁用/启用侧边栏
【发布时间】:2015-09-27 03:30:51
【问题描述】:

有没有办法从服务器端手动禁用/启用闪亮仪表板应用程序的侧边栏?

我想在需要更多空间时自动隐藏侧边栏,而不使用标题上的切换按钮。

谢谢

【问题讨论】:

    标签: r shiny shinydashboard shinyjs


    【解决方案1】:

    我对仪表板不太熟悉,因为我从未构建过仪表板,但快速浏览一下,似乎在单击打开/隐藏侧边栏按钮时,所发生的只是添加了一个 sidebar-collapse 类/删除到<body> 标签。也许发生了更多我不知道的事情,但这似乎是最明显的事情。

    因此您可以轻松使用shinyjs 包(免责声明:我是作者)添加/删除该类

    library(shiny)
    library(shinydashboard)
    library(shinyjs)
    
    shinyApp(
      ui = 
        dashboardPage(
          dashboardHeader(),
          dashboardSidebar(),
          dashboardBody(
            shinyjs::useShinyjs(),
            actionButton("showSidebar", "Show sidebar"),
            actionButton("hideSidebar", "Hide sidebar")
          )
        ),
      server = function(input, output, session) {
        observeEvent(input$showSidebar, {
          shinyjs::removeClass(selector = "body", class = "sidebar-collapse")
        })
        observeEvent(input$hideSidebar, {
          shinyjs::addClass(selector = "body", class = "sidebar-collapse")
        })
      }
    )
    

    【讨论】:

    • 顺便说一句,我从第一个版本开始就使用你的库(shinyjs)。对于像我这样具有非常基本的 JS 经验的人来说,它非常有用。我真的很喜欢你的图书馆方法,实际上我从源代码中学到了很多东西。所以,非常感谢你创建了 shinyjs :)
    • 如果您的dashboardBody 是动态呈现的,您将如何调整选择器变量useShinyjs() 的位置?
    猜你喜欢
    • 1970-01-01
    • 2022-12-16
    • 2016-03-19
    • 2018-04-10
    • 2011-10-16
    • 1970-01-01
    • 2018-05-28
    • 2020-07-07
    • 1970-01-01
    相关资源
    最近更新 更多