2015-07-09 8 views
5

C'è un modo per disabilitare/abilitare manualmente la barra laterale sull'app del cruscotto lucida dal lato server?disabilitazione/abilitazione barra laterale dal lato server

Vorrei nascondere automaticamente la barra laterale quando ho bisogno di più spazio senza utilizzare il pulsante di commutazione sull'intestazione.

Grazie

risposta

10

Io non sono molto familiare con cruscotti come non ho mai costruito uno, ma da una prendere una rapida occhiata, sembra che quando si fa clic sul pulsante di barra laterale/nascondere aperto, tutto ciò che accade è un La classe sidebar-collapse viene aggiunta/rimossa al tag <body>. Forse accadono più cose di cui non sono a conoscenza, ma quella sembrava essere la cosa più visibile.

Così si può facilmente utilizzare shinyjs pacchetto (disclaimer: io sono l'autore) per aggiungere/rimuovere quella classe

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") 
    }) 
    } 
) 
+0

La ringrazio molto, funziona molto bene. Sto solo imparando a conoscere JS. – Geovany

+0

A proposito, sto usando la libreria (shinyjs) dalla prima versione. È molto utile per qualcuno come me con un'esperienza di base con JS. Mi piace molto il tuo approccio per la libreria e in realtà ho imparato molto dal codice sorgente. Quindi, grazie mille per aver creato shinyjs :) – Geovany

+0

che è molto bello sentire, grazie! –