在R-Shiny中,从模式屏幕(modal screen)捕获事件通常涉及到使用Shiny的模块系统以及JavaScript回调函数。以下是一个基本的示例,展示如何创建一个模式屏幕,并在其中捕获按钮点击事件。
Shiny.onInputChange
函数,可以在客户端(浏览器)执行JavaScript代码,并将结果传递回Shiny服务器。library(shiny)
ui <- fluidPage(
actionButton("openModal", "Open Modal"),
tags$head(tags$script(src = "modal.js"))
)
server <- function(input, output, session) {
modal <- modalDialog(
title = "My Modal",
textInput("modalText", "Enter some text:"),
actionButton("submitModal", "Submit")
)
observeEvent(input$openModal, {
showModal(modal)
})
observeEvent(input$submitModal, {
showModal(modal)
})
}
$(document).on('click', '#submitModal', function() {
var inputText = $('#modalText').val();
Shiny.onInputChange('modalSubmitted', {text: inputText});
$(this).closest('.modal').modal('hide');
});
这种模式适用于需要在用户与模式屏幕交互时捕获数据的场景,例如表单提交、数据验证或动态内容更新。
Shiny.onInputChange
调用是否正确,并且在服务器端有对应的observeEvent
或reactive
来响应这个输入变化。showModal
和modal('hide')
。请注意,这个示例假设你已经熟悉R和Shiny的基本用法。如果你遇到具体的错误或问题,可能需要根据错误信息进行调试。
领取专属 10元无门槛券
手把手带您无忧上云