我想将数据发送到服务器并通过鼠标点击事件接收回来。这是我的程序的示例代码。 在第一部分中,我创建了一个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))
})
})