javascript - 需要通过 javascript API 在 R 内 Shiny 的 Tableau 图表的 Hello world 示例

标签 javascript shiny tableau-api shinyjs

我正在尝试在 R Shiny 中使用 tableau javascript api。我使用shinyjs包来简化shiny中的调用。涉及的js来自tableau的教程页面。

单击“调用 Tableau Viz”按钮后,没有任何反应,浏览器控制台显示未捕获的 [对象对象] 错误

(index):7504 未捕获的 [object Object]VizImpl$Create @ (index):7504$tableauSoftware_Viz @ (index):4829initializeViz @ (index):8644shinyjs.init @(index):34(匿名函数) @ (索引):33_sendMessagesToHandlers @shinyapp.js:515(匿名函数)@shinyapp.js:626_sendMessagesToHandlers@shinyapp.js:515dispatchMessage@shinyapp.js:501c.onmessage@shinyapp.js:114

这应该是一个非常直接的问题,但我不知道如何解决它。

library(shiny)
library(shinyjs)

jsCode <- "shinyjs.init = function(){initializeViz();}"

shinyApp(
  ui = fluidPage(
    includeScript("https://public.tableau.com/javascripts/api/tableau-2.1.0.js"),
    includeScript("http://onlinehelp.tableau.com/samples/en-us/js_api/tutorial.js"),
    useShinyjs(),
    extendShinyjs(text = jsCode),
    actionButton('trigger','Call Tableau Viz'),
    tags$div(id = 'tableauViz')
  ),
  server = function(input, output) {
    observeEvent(input$trigger, {
      js$init()
    })
  }
)

最佳答案

您对shinyjs.init函数有一个小误解。它会被自动调用。调用 js$init() 将不起作用。如果您在shinyjs.init函数中放置alert("hello")调用,您将看到它在应用启动时被调用。

关于javascript - 需要通过 javascript API 在 R 内 Shiny 的 Tableau 图表的 Hello world 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39663442/

相关文章:

javascript - 多级 Accordion 菜单 : Its possible to open each level with an anchor?

r - Select/Deselect All 按钮用于 Shiny 的变量选择

css - Tableau map 形状重叠

csv - 向 Tableau 中的表添加名称

api - tableau可以动态访问数据吗?

javascript - 有没有办法在 AWS Lambda 中获取 Cognito 用户名?

javascript - 将对象的递归数组转换为javascript中的嵌套或递归对象

r - Shiny - 如何使用 ggiraph

r - 使用 R Shiny 显示上传数据文件中的行数

javascript - Jest 测试涉及当前日期的函数