1

我想将数据发送到服务器并通过鼠标单击事件接收回来。这是我的程序的示例代码。。在第一部分中,我创建了一个 javascript 函数“mouseclick”,通过单击圆形对象将 id 发送到服务器。在服务器端处理输入并使用 R 中的“rnorm”函数生成一组样本。现在“rnorm”生成的输出被发送回客户端。我想将此数据存储到变量 'items' 中。下面给出了接收数据的代码,由“Shiny.addCustomMessageHandler”访问。现在的问题是,如果我在 'Shiny.addCustomMessageHandler' 中打印 'items' ,它会显示从服务器接收到的值。如果我在“Shiny.addCustomMessageHandler”之外访问它,它会显示“item”变量为空。

//// Javascript code    
<script type="text/javascript">
function mouseclick(d) {
var items = new Array();
Shiny.onInputChange("mydata", d.name);
$(document).ready(function() {
Shiny.addCustomMessageHandler("testmessage",
function(message) {
for(var i =0; i < message.value.length; i ++){
items.push(message.value[i]);
}
alert(items);
});
});
alert(items); 
}
</script>


########## Server.R
shinyServer(function(input, output, session) {
output$tres <- renderPrint({
nb <- rnorm(10,  input$mydata+1)
nb
})

observe({
print(input$mydata)
nb <- rnorm(10,  input$mydata+1)
session$sendCustomMessage(type='testmessage', list(value=nb))
})
})
4

0 回答 0