【发布时间】:2019-06-18 18:14:59
【问题描述】:
我正面临一个可能很容易解决但困扰我的问题。
我有一个 global.R 脚本,我使用 JS 来计算屏幕高度
jscode_for_screen_Height <- '$(document).on("shiny:connected", function(e) {
var jsHeight = screen.height;
Shiny.onInputChange("GetScreenHeight",jsHeight); });'
此变量在我的 server.R 中的多个部分中使用,并且可以正常工作。例如
output$viewDataCTgov <- DT::renderDataTable({
DT::datatable(data_to_render_CTgov(),
options = list(scrollX = TRUE,scrollY = paste(input$GetScreenHeight,"px",sep=""),
scrollCollapse=TRUE,pageLength = 100,searchHighlight = TRUE), escape = FALSE)
})
现在我正在创建一张传单地图,并且在 ui.R 我有
leafletOutput("mymap", height = XXX )
leafletoutput 接受一个字符串作为高度参数(例如“400”)
这里有问题:
1) 我无法使用 input$GetScreenHeight,因为我在 ui.R 上并且输入不在脚本范围内。
2) 我不知道如何从 server.R
将纯字符串传递给 ui.R到目前为止我尝试的是在 server.R
中使用output$ScreenHeightvalue <- paste0(input$GetScreenHeight)
而在 ui.R
leafletOutput("mymap", height =(textOutput("ScreenHeightvalue")))
但由于 textOutput("ScreenHeightvalue") 不是纯字符串,因此不起作用。
如何将 paste0(input$GetScreenHeight) 从 server.R 传递到 ui.R 作为纯字符串?
【问题讨论】:
-
一个简单的方法是使用 renderUI() :它是一个在服务器中创建 UI 对象的函数。 shiny.rstudio.com/reference/shiny/0.14/renderUI.html
标签: javascript r string shiny