如果我在服务器文件中使用session$sendCustomMessage
命令并输入三个列表,我如何访问message-handler.js
文件中的三个不同内容?
说我的电话如下:
session$sendCustomMessage(type='testmessage', message=list(pid=pid, cid=cid, query=sql))
在我的.js文件中,我想分别使用pid,cid和查询,关于我如何做的任何想法?
谢谢!
答案 0 :(得分:7)
您可以message.pid, message.cid
等方式访问它们。列表将作为JSON
传递。一个改编自http://shiny.rstudio.com/gallery/server-to-client-custom-messages.html的例子:
library(shiny)
runApp(
list(ui = fluidPage(
titlePanel("sendCustomMessage example"),
fluidRow(
column(4, wellPanel(
sliderInput("controller", "Controller:",
min = 1, max = 20, value = 15),
singleton(
tags$head(tags$script('Shiny.addCustomMessageHandler("testmessage",
function(message) {
alert("The b variable is " + message.b);
}
);'))
)
))
)
)
, server = function(input, output, session){
observe({
session$sendCustomMessage(type = 'testmessage',
message = list(a = 1, b = 'text',
controller = input$controller))
})
})
)