如何在闪亮的应用程序开始时展开导航面板?

时间:2017-11-23 18:22:21

标签: r shiny

这就是我的应用程序在开始时的样子: enter image description here

问题是有些用户不知道上面的列表可以通过点击展开。是否可以在应用程序开始时将其设置为展开?

这就是我想要它在开始时的样子: enter image description here

1 个答案:

答案 0 :(得分:1)

以下是您可以使用Javascript以编程方式操作导航栏的示例。

library(shiny)

ui <- tagList(
  tags$head(
    tags$script(HTML("
      Shiny.addCustomMessageHandler('click-navbar-menu', function(message) {
        var menuName = message.menuName;
        $('.nav').find('a[data-value=\"' + menuName + '\"]').click();
      })"))
  ),

  navbarPage("App Title",
             tabPanel("Plot"),
             navbarMenu("More",
                        menuName = "more",
                        tabPanel("Summary"),
                        "----",
                        "Section header",
                        tabPanel("Table")
             )
  )
)

clickNavbarMenu <- function(menuName, session = getDefaultReactiveDomain()) {
  session$sendCustomMessage("click-navbar-menu", list(menuName = menuName))
}

server <- function(input, output, session) {
  clickNavbarMenu("more")
}

shinyApp(ui, server)

如果您不需要从服务器控制它(在加载应用程序时一次性处理),您可以将其剥离并运行一个带有硬编码值的简单脚本,如:

  tags$head(
    tags$script(HTML("
      $(function() {
        $('.nav').find('a[data-value=\"more\"]').click();
      });"))
  )