R Shiny Dashboard - 标题中的自定义下拉菜单

时间:2017-05-05 13:50:08

标签: r shiny shinydashboard

在闪亮的仪表板github中,我发现可以在标题的右上角创建下拉菜单,但只有3种“类型”(消息,通知和任务)。

https://rstudio.github.io/shinydashboard/structure.html#structure-overview

是否有创建自定义下拉列表的方法?我想制作一个设置下拉菜单,在那里我给用户一些复选框,他们可以用它们来调整仪表板的方式(显示/隐藏内容,过滤数据等)。

2 个答案:

答案 0 :(得分:2)

我自定义了三种类型的菜单之一。然后,您可以为项目添加actionItem(s)。当{true}模拟选择tabSelect时,sidebarMenuItem属性。

dropdownActionMenu <- function (..., title=NULL, icon = NULL, .list = NULL, header=NULL) {
  items <- c(list(...), .list)
  lapply(items, shinydashboard:::tagAssert, type = "li")
  type <- "notifications" # TODO créer action + CSS
  dropdownClass <- paste0("dropdown ", type, "-menu")
  tags$li(class = dropdownClass, a(href = "#", class = "dropdown-toggle",
    `data-toggle` = "dropdown", icon, title), tags$ul(class = "dropdown-menu",
    if(!is.null(header)) tags$li(class="header",header),
    tags$li(tags$ul(class = "menu", items))))
}

actionItem = function (inputId, text, icon = NULL, tabSelect=FALSE) {
  if(!is.null(icon)) {
    shinydashboard:::tagAssert(icon, type = "i")
    icon <- tagAppendAttributes(icon, class = paste0("text-", "success"))
  }
  if(tabSelect) {
    tags$li(a(onclick=paste0("shinyjs.tabSelect('",inputId,"')"),icon,text))
  } else {
    tags$li(actionLink(inputId,text,icon))
  }
}

示例代码

dashboardHeader(
  dropdownActionMenu(title="test",
    actionItem("mnuFirst","First"),
    actionItem("mnuSecond","Second")
  )
)

答案 1 :(得分:0)

Shiny Dashboard基于admin LTE。因此,现有的下拉类型是针对管理LTE用例而设计的,这与许多Shiny应用程序的使用情况截然不同。

如果管理员LTE中甚至无法使用某些内容,则在Shiny信息中心中支持的可能性会降低。

针对您的具体问题,您可以some controls in the side bar。另一种可能性是使用the wrench icon in box,这在Shiny中尚未实现。