簡體   English   中英

你如何在shiny中的htmlwidget(jsoneditor)上調用javascript方法?

[英]How do you call a javascript method on a htmlwidget (jsoneditor) in shiny?

我正在嘗試在 shiny 應用程序中使用列表查看器 package 中的 jsonedit,並希望默認顯示完全展開的樹。 在 jsonedit() function 中沒有執行此操作的選項,但底層 javascript object 有一個 .expandAll() 方法可以執行此操作。 如何從 R shiny 調用此方法? 我的以下嘗試在 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();}")
    })
  }
)
jsonedit(x, mode = 'view') %>% 
  onRender("function(el,x,data) {this.editor.expandAll();}")

上面的答案對我有用。 謝謝斯蒂芬·洛朗。 只需添加功能來自的包......

listviewer::jsonedit(
      x = list(a=1,b=2,c=list(d=4,e='penguin'))
      mode="view"
    ) %>% htmlwidgets::onRender("function(el,x,data) {this.editor.expandAll();}")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM