2015-07-09 20 views
5

Có cách nào để vô hiệu hóa thủ công/bật thanh bên trên ứng dụng bảng điều khiển sáng bóng từ phía máy chủ không?vô hiệu hóa/bật thanh bên từ phía máy chủ

Tôi muốn tự động ẩn thanh bên khi tôi cần thêm dung lượng mà không cần sử dụng nút bật tắt trên tiêu đề.

Cảm ơn bạn

Trả lời

10

Tôi không phải là rất quen thuộc với biểu đồ như tôi không bao giờ xây dựng một, nhưng từ một tham gia một cái nhìn nhanh chóng, nó có vẻ như khi nhấp vào nút bên/hide mở, tất cả những gì xảy ra là một sidebar-collapse lớp được thêm/xóa vào thẻ <body>. Có lẽ nhiều điều hơn nữa xảy ra mà tôi không biết, nhưng đó dường như là điều hiển nhiên nhất.

Vì vậy, bạn có thể dễ dàng sử dụng shinyjs gói (từ chối trách nhiệm: Tôi là tác giả) để thêm/loại bỏ lớp

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

Cảm ơn bạn rất nhiều, nó hoạt động rất tốt. Tôi chỉ đang học về JS. – Geovany

+0

Nhân tiện, tôi đang sử dụng thư viện của bạn (shinyjs) kể từ lần phát hành đầu tiên. Nó rất hữu ích cho một người như tôi với một kinh nghiệm rất cơ bản với JS. Tôi thực sự thích cách tiếp cận của bạn cho thư viện và thực sự tôi đã học được rất nhiều từ mã nguồn. Vì vậy, cảm ơn bạn rất nhiều vì đã sáng tạo :) – Geovany

+0

thật tuyệt khi nghe, cảm ơn! –

Các vấn đề liên quan