Как мне добавить входные параметры для функции sparkjs :: smoothjs.init () в R? - PullRequest
0 голосов
/ 15 ноября 2018

Я модулирую свое приложение R Shiny с помощью пользовательских функций Javascript, используя пакет shinyjs.Я нахожу определяющие параметры для js$functionName(params) полезными и хотел бы также использовать его для shinyjs.init(), который автоматически вызывается при первоначальной загрузке приложения.

Уточнение с комментарием JohnCoene:

Из приведенного ниже кода я хочу использовать customMessage, определенный в R, используемый в shinyjs.init().Я хочу этого, потому что у меня есть предопределенный скрипт, который включает все жестко запрограммированные переменные, включая имена классов HTML и идентификаторы.Я не хочу определять другую переменную в shinyjs.init().

Пожалуйста, обратитесь к воспроизводимому примеру, используя коды с официальной страницы smoothjs ниже:

library(shiny)
library(shinyjs)

customMessage <- 'The app has been launched'

jsCode <- '
shinyjs.init = function() {
  alert("I want to have a custom parameter for shinyjs.init()!");
}

shinyjs.backgroundCol = function(params) {
  var defaultParams = {
    id : null,
    col : "red"
  };
  params = shinyjs.getParams(params, defaultParams);
  console.log(params);
  var el = $("#" + params.id);
  el.css("background-color", params.col);
}'

shinyApp(
  ui = fluidPage(
    useShinyjs(),
    extendShinyjs(text = jsCode),
    p(id = "name", "My name is Dean"),
    p(id = "sport", "I like soccer"),
    selectInput("col", "Colour:",
                c("white", "yellow", "red", "blue", "purple")),    
    textInput("selector", "Element", ""),
    actionButton("btn", "Go")
  ),
  server = function(input, output) {
    observeEvent(input$btn, {
      js$backgroundCol(input$selector, input$col)
    })
  }
)
...