2016-09-12 2 views
0

나는 반짝이는 것을 좋아합니다. 프로젝트를 만들 때 서버 쪽 대시 보드 헤더를 숨길 필요가 있습니다.shiny - 대시 보드를 비활성화하는 방법 헤더

shinydashboard 웹 사이트에서 코드 dashboardHeader(disable = TRUE)을 발견했습니다. 나는 이것을 시도했다. 그러나 그것은 효과가 없었다.

그러나 문제를 해결하기 위해 shinyjs를 사용해 보았습니다.

<code> 

    library(shiny) 
    library(shinydashboard) 
    library(shinyjs) 

    ui <- dashboardPage(
      dashboardHeader(
       extendShinyjs(text = 'shinyjs.hidehead = function(params) {   
       $("header").addClass("sidebar-collapse") }'), 
         ), 
      dashboardSidebar(), 
      dashboardBody(
       actionButton("button","hide_header",width = 4) 
         ) 
         ) 

    server <- function(input, output) { 
     observeEvent(input$button, { 
         js$hidehead()   
        })} 

    shinyApp(ui, server)</code> 

이미 알고 계시 겠지만 여전히 효과가 없습니다.

내 사례에 대한 아이디어가 있으십니까?

답변

2

Shinyjs는 훌륭한 라이브러리입니다. 코드의 문제는 먼저 shinyjsshinyjs::useShinyjs()으로 초기화하고 dashboarBody 함수 안에 넣어야한다는 것입니다. 또한 헤더를 숨기거나 표시하려면 실제로 사이드 바를위한 클래스 "sidebar-collapse"을 추가 할 필요가 없습니다. 헤더를 숨기려면 머리말을 표시하기 위해 style="display:none"을 추가하고 제거해야합니다. 아래는 헤더를 숨기거나 보여주기 위해 수정 된 코드입니다. 사용 된 JS 코드는 매우 간단하며 js$hidehead() 함수에서 직접 추가 할 매개 변수를받습니다.

library(shiny) 
library(shinydashboard) 
library(shinyjs) 

ui <- dashboardPage(
     dashboardHeader(), 
     dashboardSidebar(), 
     dashboardBody(
      # initialize shinyjs 
      shinyjs::useShinyjs(), 
      # add custom JS code 
      extendShinyjs(text = "shinyjs.hidehead = function(parm){ 
            $('header').css('display', parm); 
           }"), 
      actionButton("button","hide header"), 
      actionButton("button2","show header") 
     ) 
    ) 

server <- function(input, output) { 
    observeEvent(input$button, { 
    js$hidehead('none')   
    }) 
    observeEvent(input$button2, { 
    js$hidehead('')   
    }) 
} 

shinyApp(ui, server) 
+0

감사드립니다. 나는 사이드 바와 헤더를 망쳐 놓는다. 귀하의 대답은 shinyjs 기능을 이해하는 데 도움이됩니다. 도움을 주셔서 감사합니다. 다시 한번 감사드립니다. – helloswift123

+0

도움이된다는 점을 잘 알고 있습니다. 질문에 대한 답변이 좋은 경우 확인 표시가있는 질문을 수락하면 다른 사용자를 도울 수 있습니다. – Geovany

관련 문제