2016-07-10 7 views
0

質問Custom widget HTML上htmlwidgets.orgページの最後のセクションでは、呼び出された関数にはどうすればよい<widget_name>_htmlはどのようにしてwidget_htmlに変数を渡すん

を作成することにより、ウィジェットに独自のHTMLを追加することができます言う

変数をこの関数に渡しますか?

私はmyWidgetHTMLと呼ばれる新しいパッケージを作成し、htmlwidgets::scaffoldWidget(name = "myHTML”)を実行しました。パッケージが生成さR/myHTML.Rファイル内の私のgithub page

でホストされている、私は関数に

#' @import htmltools 
myHTML_html <- function(id, class, style, ...){ 
    myString <- "hello world" 
    tags$p(myString) 
} 

建物を作成し、ウィジェットを実行すると、予想通りの文字列hello worldを生成している

library(myWidgetHTML) 
myHTML(message = "") 

enter image description here

私が理解できないことは、私はそれに可変myStringを渡すことができます(以下コピー)関連するセクションは、それが...を通してさらに引数を受け取り通りsource code for the widgets通って行く

#' @import htmltools 
#' @export 
myHTML_html <- function(id, class, style, myString, ...){ 
    tags$p(myString) 
} 

は、任意の光を当てるしていないが、ここに私が見ることができませんからそれらを送ってください。

widget_html <- function(name, package, id, style, class, inline = FALSE, ...){ 

    # attempt to lookup custom html function for widget 
    fn <- tryCatch(get(paste0(name, "_html"), 
        asNamespace(package), 
        inherits = FALSE), 
       error = function(e) NULL) 

    # call the custom function if we have one, otherwise create a div 
    if (is.function(fn)) { 
    fn(id = id, style = style, class = class, ...) 
    } else if (inline) { 
    tags$span(id = id, style = style, class = class) 
    } else { 
    tags$div(id = id, style = style, class = class) 
    } 
} 
+0

これは現時点では不可能であることを[htmlwidgets]に伝えました(https://twitter.com/timelyportfolio/status/752313318610644992)。 – SymbolixAU

答えて

2

この質問を閉じるには、正式な答えはこれが不可能であるということです。

参考:今のよう@timelyportfolio

から This tweet、この

を達成する本当の方法は、私は可能な解決策は、widget_htmlxを渡すだろうと思っていないので、この提案しました潜在的な解決策としてしかし、シャイニー

に関して使用される場合、これは動作しません@jjallaire指摘: Issue 212

問題は、光沢のあるアプリケーション内の「x」はまだ呼ばれwidget_html時点で知られていないということです。これを達成する最善の方法は、JavaScript側でrenderValueへの最初の呼び出しで必要に応じてDOMを変更することです。

関連する問題