Динамическое управление блестящими модулями с несколькими пользовательскими интерфейсами - PullRequest
0 голосов
/ 27 сентября 2019

Я хочу динамически добавлять модули в приложение, используя insertui, и удалять пользовательский интерфейс.Я могу добавить части модуля правильно, но я могу удалить их.Я считаю, что проблема с селектором для удаляемой части.Кроме того, я не смог найти, как получить доступ к списку x в модуле сервера из приложения.

library(shiny)
index_dUI<-function(id){
  ns<-NS(id)
  tagList(    
    selectInput(inputId = ns("filter"),label="Subset by",choices=c("none",c(1:3)),selected="none"),
    selectInput(inputId = ns("filter_val"),label="options",choices=c("none",c(1:3)),selected="none")
  ) 
}
index_d<-function(input,output,session){

  x<-reactive({
    list(input$filter,input$filter_val)

  })
  x
}
ui <- fluidPage(
               actionButton('add', '+'),
               actionButton('remove', '-'),
               tags$div(id = 'placeholder')      )



server <- function(input, output, session) {
  uiCount = reactiveVal(0)
  moduleOuts = reactiveValues()
  observeEvent(input$add, {
    uiCount(uiCount()+1)
    insertUI('#placeholder',
             'beforeBegin',
             index_dUI(paste0("module",uiCount())))


    callModule(
      module = index_d,
      id = paste0("module",uiCount()))
  })
  observeEvent(input$remove,{
    removeUI(
      selector = paste0("#module",uiCount())
    )

    uiCount(uiCount()-1)
  })


  index_glob<-reactive({
    input$goButton

  })

}
shinyApp(ui = ui, server = server)


...