2017-04-06 15 views
0

のための光沢のあるRのパッケージに静的ファイルを追加するためにどのように私は(それがinstディレクトリにあります)addResourcePathを使用しようとextdataディレクトリが含まれている:新しい入力制御

は私のカスタム入力機能にスクリプトやCSSファイルを持っています:

#' @export 
multiSelect <- function(inputId, label = NULL, choices = NULL, selected = NULL) { 
    args <- lapply(names(choices), function(name) { 
    value <- choices[[name]] 
    if (value %in% selected) { 
     tags$option(value = value, selected = "selected", name) 
    } else { 
     tags$option(value = value, name) 
    } 
    }) 
    args$id = inputId 
    args$class = "multiple-select" 
    args$multiple = "true" 
    tagList(
    singleton(tags$head(
     tags$link(rel = "stylesheet", href = "extdata/multiSelect.css"), 
     tags$script(src = "extdata/multiSelect.js") 
    )), 
    tags$script(paste0("$('#", inputId, "').multipleSelect()")), 
    tags$div(
     class = "form-group shiny-input-container", 
     tags$label(`for`=inputId, label), 
     do.call(tags$select, args) 
    ) 
) 
} 

私はこれを試してみました:

addResourcePath('extdata', system.file('extdata', package='myPackage')) 

私はパッケージの私のdivosshiny\R\shinyUtils.Rファイルでこれを実行します。

が、私は、サーバーとオープン実行すると:

http://127.0.0.1:7003/extdata/multiSelect.js 

multiSelect.jspackage/inst/extdata/ディレクトリにあります。何か不足していますか? addResourcePathはどのように動作すると思われますか?

パッケージをビルドしてもエラーは発生しません。 extdataexdataと間違って入力したときにエラーが発生したため、パスが正しいことがわかりました。

答えて

0

関数addResourcePathは(メインserver.Rで)ユーザーコードで実行する必要がある、私は機能追加しました:

#' @export 
setupWidgets <- function() { 
    addResourcePath('extdata', system.file('extdata', package='divosShiny')) 
} 

をしてserver.Rでそれを実行し、それが働きました。

関連する問題