Отслеживание порядка сортировки меню SubItems в R Shinydashboard - PullRequest
0 голосов
/ 07 ноября 2019

Я могу отобразить сортируемый список menuSubItems, используя этот вопрос, но я хотел бы отслеживать порядок, в котором они находятся после сортировки. menuSubItem s не отображаются в input на стороне сервера (по крайней мере, не весь список), и я хотел бы иметь возможность получить доступ к порядку списка значений в test_tabs без необходимости углубляться в создание пользовательских привязок ввода в Shiny.

Любые креативные идеи будут оценены!

library(shiny)
library(shinydashboard)
library(sortable)

# Define UI for shinydashboard
ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(
    sidebarMenu(
      menuItem("tab_one", tabName = "test_body"),
      menuItemOutput("test")
    )
  ),
  dashboardBody(
    tabItem("test_body", actionButton("click_me", "Click Me"))
  )
)

# Define server logic to dynamically create menuSubItems
server <- function(input, output) {
  observeEvent(input$click_me, {
    tabs_list <- lapply(1:5, function(x) {
      menuSubItem(text = paste("tab", x))
    })

    output$test <- renderMenu({
      menu <- menuItem("test_tabs", do.call(tagList, tabs_list))
      menu$children[[2]] <- tagAppendAttributes(menu$children[[2]], id = "test_tabs")
      tagAppendChildren(menu, sortable_js("test_tabs"))
    })
  })
}

# Run the application
shinyApp(ui = ui, server = server)
...