#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)