与会话$ sendCustomMessage的闪亮和JavaScript交互

时间:2014-09-23 20:15:38

标签: javascript r shiny

如果我在服务器文件中使用session$sendCustomMessage命令并输入三个列表,我如何访问message-handler.js文件中的三个不同内容?

说我的电话如下:

session$sendCustomMessage(type='testmessage', message=list(pid=pid, cid=cid, query=sql))  

在我的.js文件中,我想分别使用pid,cid和查询,关于我如何做的任何想法?

谢谢!

1 个答案:

答案 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))
    })
  })
)