从服务器端禁用/启用侧边栏

Posted

技术标签:

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

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

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

谢谢

【问题讨论】:

【参考方案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() 的位置?

以上是关于从服务器端禁用/启用侧边栏的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能从 Google AppScript for Sheets 的侧边栏中调用服务器函数? [复制]

为啥我不能从 Google AppScript for Sheets 的侧边栏中调用服务器函数? [复制]

从代码重新加载

基于slideout.js实现的移动端侧边栏滑动特效

当使用 PHP 在后端验证电子邮件时,如何将输入提交从禁用更改为启用?

React 16.3, Antd 4.2, 侧边栏的 Icon 由后端返回,Icon显示问题