2016-09-12 2 views
0

私は光沢があります。私がプロジェクトを作ったとき、私はサーバー側のダッシュボードヘッダーを隠す必要があります。shiny - ダッシュボードを無効にする方法

shinydashboardのWebサイトで、コード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

関連する問題