如何在闪亮的仪表板应用程序中包含远程JavaScript文件?

时间:2015-08-28 23:11:40

标签: r shiny shinydashboard

如何使用shinydashboard在我的应用程序中包含远程JS文件?我知道有includeScript函数。我试过了

...

# using shiny dashboard
ui <- dashboardPage(

  includeScript("http://the.path.to/my/js-file.js")

  dashboardHeader(
    title = "My title",
    titleWidth = 400
  ),

...

这会导致错误:

Error in tagAssert(header, type = "header", class = "main-header") : 
Expected tag to be of type header

我尝试将调用放在其他地方,将其与tags$head结合起来,在本地存储JS文件并使用本地路径引用加载它,但无济于事。

所以我坚持以下问题?

  1. 我是否可以将includeScript实际用作远程资源的路径?
  2. 我在哪里需要加载哪个指令来加载JS文件(以及JS文件需要驻留在哪里)?
  3. @daattali已经提出了一个使用tags$head的纯粹基于Shiny的实现(没有shinydashboard)的解决方案,但这似乎不适用于shinydashboard。

1 个答案:

答案 0 :(得分:8)

您可以使用InviteMailer标记

src参数包含远程JS文件
script

编辑:好的,所以你想让它与shinydashboard一起工作。你的方式不起作用是有道理的。查看library(shiny) jsfile <- "https://gist.githack.com/daattali/7519b627cb9a3c5cebcb/raw/91e8c041d8fe4010c01fe974c6a35d6dd465f92f/jstest.js" runApp(shinyApp( ui = fluidPage( tags$head(tags$script(src = jsfile)) ), server = function(input, output) { } )) 的文档。第一个参数是dashboardPage。您不能只是开始提供要包含的标签/ UI元素。包含脚本或任何其他此类元素应该进入仪表板体内。例如

header