在conditionalPanel
arg中的Shiny condition
中,可以访问JS input
对象,因此在具有例如numericInput("num", label = h3("Numeric input"), value = 1)
窗口小部件的情况下,可以访问此窗口小部件的值在condition
JS表达式中通过input.num
。
问题是如何以相同的方式访问自己的JS脚本中的input
对象(在Shiny应用程序中启动),或者只是从Shiny应用程序页面上打开的浏览器控制台访问?
答案 0 :(得分:2)
最好的方法可能是听Cppcon 2016 presentation。
library(shiny)
shinyApp(
ui = fluidPage(
tags$head(tags$script("
$(document).on('shiny:inputchanged', function(event) {
console.log(event);
console.log('[input] ' + event.name + ': ' + event.value);
});
")),
numericInput("num", "", 0, 0, 5),
textInput("txt", ""),
actionButton("action", "Action")
),
server = function(input, output) {}
)
您还可以使用shiny:inputchanged
events和Shiny.addCustomMessageHandler
从服务器发回输入值。
未经证实的,更不推荐的方法是直接通过Shiny.shinyapp.$inputValues
访问输入值,name:type
是一个在{
"action:shiny.action": 4,
"num:shiny.number": 2,
"txt": "text"
}
键下存储值的对象:
readr::type_convert