Откройте диалоговое окно «modalDialog», когда в Shinyapp выбрана вкладка - PullRequest
0 голосов
/ 21 сентября 2018

Я создал блестящее приложение с navbarPage, имеющим 3 вкладки, а именно 'A1', 'A2', & 'A3' .Теперь я хотел создать модальное диалоговое окно, когда пользователь выбирает 'A2' .Ниже мой код:

ui <- shinyUI(fluidPage(
    wellPanel(
          navbarPage(id = "AC", "AC :",
              tabPanel(tabName = "A1", h6("A1"), fluidRow()),
              tabPanel(tabName = "A2", h6("A2"), fluidRow()),
              tabPanel(tabName = "A3", h6("A3"), fluidRow())
            )
  )
))

server <- function(input, output, session) {


observe({
   if (input$AC == "A2")  {
     showModal(modalDialog(
        title = "Important message",
        div(id = "aa", style = "width: 1100px; height: 100px;", HTML("<b>This is </b>an important message!")),
        easyClose = TRUE
      ))
  }
  })
}

shinyApp(ui, server)

Однако, выше, приложение не открывает модальное диалоговое окно, когда выбрана 2-я вкладка.Любой указатель на правильный подход будет высоко оценен.

Спасибо,

1 Ответ

0 голосов
/ 21 сентября 2018

У вас почти получилось, вход для AC - это панель вкладок с HTML-кодированием, поэтому input$AC=="<h6>A2</h6>", а не A2

observeEvent(input$AC, {
    print(input$AC)
    if (input$AC == "<h6>A2</h6>")  {
      showModal(modalDialog(
        title = "Important message",
        div(id = "aa", style = "width: 1100px; height: 100px;", HTML("<b>This is 
        </b>an important message!")),
        easyClose = TRUE
      ))
    }else{}

Не обращайте внимания на то, что observeEvent() это былопросто для отладки

...