如果我在服务器文件中使用session$sendCustomMessage
命令并输入三项内容的列表,如何访问message-handler.js
文件中的三项不同内容?
说我的电话看起来像这样:
session$sendCustomMessage(type='testmessage', message=list(pid=pid, cid=cid, query=sql))
在我的.js文件中,我想分别使用pid,cid和query,有关如何执行此操作的任何想法?
谢谢!!
最佳答案
您可以使用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))
})
})
)