客户端服务器之间的数据交换通过javascript闪亮

时间:2014-07-09 17:20:34

标签: r shiny shiny-server

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

0 个答案:

没有答案