如何捕获shinyalert输入字段作为变量

时间:2017-07-16 13:53:41

标签: r shiny shinyjs

我尝试使用相对较新的shinyAlert软件包来查看它是否提供比sweetalert软件包更好的结果,但我无法弄清楚如何获取此信息:\ n

Myvar <-  shinyalert input text 

从这个最小的例子。

library(shiny)
library(shinyjs)
library(shinyalert)

ui <- fluidPage(
  shinyjs::useShinyjs(),
  useShinyalert(),
     actionButton("run", "Run", class = "btn-success")
)
server <- function(input, output, session) {
  shinyEnv <- environment()

  observeEvent(input$run, {

    shinyalert('hello', type='input')
  })
}
shinyApp(ui = ui, server = server)

感谢你们在那里的任何帮助。

2 个答案:

答案 0 :(得分:3)

以下是您的操作方法:

library(shiny)
library(shinyalert)

ui <- fluidPage(
  useShinyalert(),
  actionButton("run", "Run", class = "btn-success")
)
server <- function(input, output, session) {

  observeEvent(input$run, {
    shinyalert('hello', type='input', callbackR = mycallback)
  })

  mycallback <- function(value) {
    cat(value)
  }
}
shinyApp(ui = ui, server = server)

使用回调完成。如果您愿意,可以将值分配给反应变量。

上个月我已经完整地记录了这个软件包并准备发布它,然后我的计算机崩溃,然后才有机会推向github,并且失去了所有进展。我还没有机会重新开始工作。很遗憾,该文档还不是很好,该软件包仍未发布,因此现在使用风险自负:)

(请注意,你不需要发光)

答案 1 :(得分:2)

我没有使用套件shinyalert的经验,但你可以通过闪亮的广泛使用和记录良好的模态对话框来实现你想要的。也许你有理由坚持使用我不知道的关于shinealert,但如果没有,请使用模态对话框实现你想要的示例代码:

ui <- fluidPage(
  shinyjs::useShinyjs(),
  actionButton("run", "Run", class = "btn-success"),
  textOutput("output1")
)
server <- function(input, output, session) {

  dataModal <- function(failed = FALSE) {
    modalDialog(
      textInput("input1", "Enter text:",
                placeholder = 'Enter text here'
      )
    )
  }

  # Show modal when button is clicked.
  observeEvent(input$run, {
    showModal(dataModal())
  })

  output$output1 <- renderText({
    input$input1
  })
}
shinyApp(ui = ui, server = server)

请告诉我这是否有帮助!