【问题标题】:Is it possible to retrieve a Javascript variable from a script to use it in R是否可以从脚本中检索 Javascript 变量以在 R 中使用它
【发布时间】:2017-09-18 06:18:11
【问题描述】:

我的问题在标题中,我目前正在开发一个闪亮的应用程序,并且由于我正在尝试使用目前尚未在 R 包中翻译的传单插件,因此我正在使用 var js 脚本中的地图(我在 UI.R 中使用此脚本),事实是我希望在服务器部分能够与此地图进行通信,例如使用传单代理在其上添加图块,但是我没有设法让服务器部分与那个 Js var 通信......

也许如果你知道问题出在哪里,你可以帮我很多。!

谢谢。

【问题讨论】:

  • 如果我对 Dean 的 timevis 代码有足够的理解,他正在使用 Js 函数 Shiny.onInputChange() 将 Js var 链接到 R var,问题是当我使用这个时函数,在控制台中我收到一条消息说“Shiny.onInputChange 不是函数”:((
  • 除非你有连接,否则没有机制可以从 R 控制 JS,通常是 Shiny。在没有连接的情况下,JS 和 R 互不相识。
  • 哦,所以不可能与使用 Js cmd 创建的地图进行交互,我的意思是使用像 leafletproxy 这样的 cmd 来添加多边形和东西?
  • 不,在 Shiny 中,这是可能的,但您的评论 Shiny.onInputChange 不是函数意味着您要么没有 shiny.js,要么您没有等待 Shiny 连接 shiny.rstudio.com/articles/js-events.html

标签: javascript r shiny leaflet shinyjs


【解决方案1】:

是的,你可以做到。

ui.R

tags$script(src="demo.js")

demo.js

var map = ...
setTimeout(function() {
    Shiny.onInputChange("mapInR", map);
}, 10);

现在您可以将 map 的值从 javascript 传递给 R。

server.R 中,您只需检查 javascript 值 ma​​p 为:

server <- function(input, output) {
    useMapInR <- reactive({ input$mapInR })
}

现在,每当 ma​​p 的值在 javascript 中发生变化时,它都会反映在 useMapInR 中。

【讨论】:

    猜你喜欢
    • 2019-02-25
    • 1970-01-01
    • 2021-08-15
    • 2022-01-07
    • 2015-08-03
    • 1970-01-01
    • 2020-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多