首页 > 解决方案 > 你如何在闪亮的 htmlwidget (jsoneditor) 上调用 javascript 方法?

问题描述

我正在尝试在闪亮的应用程序中使用 listviewer 包中的 jsonedit,并希望在默认情况下显示完全展开的树。在 jsonedit() 函数中没有执行此操作的选项,但底层 javascript 对象具有应该执行此操作的 .expandAll() 方法。如何从 R Shiny 中调用此方法?我在下面的尝试在闪亮的应用程序中或直接在 R 中都不起作用。

library(shiny)
library(listviewer)
library(magrittr)
library(htmlwidgets)

x <- list(a=1,b=2,c=list(d=4,e='penguin'))

jsonedit(x, mode = 'view') %>% onRender("function(el,x,data) {this.expandAll();}")

shinyApp(
  ui = shinyUI(
    fluidPage(
      jsoneditOutput( "jsed" )
    )
  ),
  server = function(input, output){
    output$jsed <- renderJsonedit({
      jsonedit(x, mode = 'view') %>% onRender("function(el,x,data) {this.expandAll();}")
    })
  }
)

标签: javascriptrshinyhtmlwidgetsjsoneditor

解决方案


jsonedit(x, mode = 'view') %>% 
  onRender("function(el,x,data) {this.editor.expandAll();}")

推荐阅读