2017-04-06 35 views
0

我已經嘗試使用addResourcePath,包括extdata目錄(這是在inst目錄):如何靜態文件添加到閃亮[R包新的輸入控制

有腳本和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執行它和它的工作。