1

サーバーにデータを送信し、マウス クリック イベントで受信したい。これが私のプログラムのサンプルコードです。最初の部分では、円オブジェクトをクリックすると ID がサーバーに送信される JavaScript 関数「mouseclick」を作成しました。サーバー側では、入力が処理され、R の「rnorm」関数を使用して一連のサンプルが生成されます。「rnorm」によって生成された出力は、クライアントに送り返されます。このデータを変数 'items' に保存したいと思います。「Shiny.addCustomMessageHandler」によってアクセスされる、データを受信するためのコードを以下に示します。問題は、「Shiny.addCustomMessageHandler」内に「アイテム」を出力すると、サーバーから受信した値が表示されることです。「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