блестящая кнопка закрытия bsModal

#r #shiny #shinybs

#r #блестящий #shinybs

Вопрос:

У меня есть кнопка actionButton с именем Ok. Когда пользователь нажимает эту кнопку, она принимает входные данные из окна ввода текста и отображает диалоговое окно bsModal message с некоторым сообщением.

Это код:

 library(shiny)
library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(

    textInput("text", "Enter Id:"),
    box(width = 1, background  = 'purple'),
    actionButton("Ok", "Press Ok",style='padding:8px; font-size:100%')
  ),

  dashboardBody(

    bsModal("modalnew", "Greetings", "Ok", size = "small",
            textOutput("text1")
    )

    )
  )

server <- function(input, output) { 

  observeEvent(input$Ok,{

    patid1 <- as.numeric(input$text)
    print(patid1)



    if (is.na(patid1) == TRUE) { output$text1 <- renderText("Please enter 
    a valid ID# without alphabets or special characters")} else {

      #output$text1 <-renderText("")
      output$text1 <-renderText({paste("You enetered", patid1)})
    }

  })

}

shinyApp(ui, server)
  

Что я пытаюсь сделать, так это то, что когда пользователь нажимает на Close кнопку в окне bsModal, он должен очистить текст в textInput текстовом поле. Я понятия не имею, как добавить реактивную функцию на кнопку закрытия в окне сообщения bsModal. Любая помощь очень ценится.

Ответ №1:

На самом деле вы не можете сделать это на bsModal , который выполняется на клиенте, но вы можете легко сделать это на сервере:

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

  observeEvent(input$Ok,{

    patid1 <- as.numeric(input$text)

    # Clear input$text
    updateTextInput(session,"text", value="")


    if (is.na(patid1) == TRUE) { output$text1 <- renderText("Please enter 
    a valid ID# without alphabets or special characters")} else {

      output$text1 <-renderText({
        paste("You enetered", patid1)})
    }

  })

}

shinyApp(ui, server)