Ike*_*ker 5 javascript r shiny
我想使用闪亮的js函数将数据从javascript发送到R,但无法正常工作。我所做的是一个简单的示例,其中setinputValue将“ noone”发送给“ too” input $ too
这是代码:
library(shiny)
ui <- fluidPage(
HTML("<script>
$( document ).ready(function() {
Shiny.setInputValue('too', 'noone');
});</script>"),
textOutput("table")
)
server <- function(input, output) {
output$table <- renderPrint(input$too)
}
shinyApp(ui,server)
Run Code Online (Sandbox Code Playgroud)
我得到的js错误是:Shiny.setInputValue不是一个函数
它不适用于$( document ).ready(function(),但适用于$( document ).on("shiny:sessioninitialized", function(event) {:
library(shiny)
ui <- fluidPage(
HTML('<script>
$( document ).on("shiny:sessioninitialized", function(event) {
Shiny.onInputChange("too", "noone");
});</script>'),
textOutput("table")
)
server <- function(input, output) {
output$table <- renderPrint(input$too)
}
shinyApp(ui,server)
Run Code Online (Sandbox Code Playgroud)
教程中给出了这样做的原因:您不能太早调用该函数,需要一点时间直到Shiny准备好更新输入值:
在message.js中,我们将代码包装在$(document).ready(function(){...}中。此jQuery函数将告诉浏览器仅在页面,即文档对象模型( DOM),可以执行JavaScript代码了。请注意,如果过早激活该代码(即在加载图片之前),我们还无法为其附加事件处理程序。换句话说,在这里我们要确保在将事件处理程序附加到图像之前,该图像存在。