2015-07-31 2 views
1

Я тестирую extendShinyJs с простым тестом на GitHub: link.R Shiny - extendShinyjs Ошибка анализа кода JavaScript

Я установил пакет V8, но я получаю эту ошибку, даже с образцом сценария: Ошибка: shinyjs: Ошибка анализа кода JavaScript.

Я также попытался переместить код JavaScript в отдельный файл в папке www.

Дополнительная информация о текущей сессии:

> sessionInfo() 
R version 3.1.3 (2015-03-09) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 
Running under: Windows 8 x64 (build 9200) 

Любая идея о том, как запустить extendShinyjs?

В ui.R:

library(shiny) 
library(shinyjs) 
library(shinyAce) 
#library(V8) 

# Define UI for application that draws a histogram 
shinyUI(fluidPage(

    shinyjs::useShinyjs(), 


    extendShinyjs(text = "myfunc.js"), 

     navbarPage("Tweets stuff", 
tabPanel("Contact", 
     sidebarLayout(
     sidebarPanel(
      textInput("ctFrom", "From:", value=""), 
      textInput("ctSubject", "Subject:", value="Sugerencias BTT"), 
      actionButton("ctSend", "Send") 
     ), 
     mainPanel(
      aceEditor("ctMessage", value="") 
     ) 
     ) 
    )) 
) 

)

myfunc.js (in www folder): 

    shinyjs.pageCol = function(params){ 
     $('body').css('background', params); 
    }; 

server.R:

shinyServer(function(input, output, session) { 
    #Programming with Twitter API 

    observeEvent(input$ctSend, { 
    #I have more things here 
    js$pageCol (input$ctSend) 
    }) 
} 

Пожалуйста, спросите меня, если вы думаете, что нужно увидеть больше кода. Я хотел очистить текст внутри «aceEditor».

Спасибо за вашу быструю помощь.

+2

как проверка здравомыслия, вы можете показать нам код? Я только что установил блестящий и v8 и запустил пример, но не смог воспроизвести ошибку, пока я не намеренно добавил ypo в JS-часть – lispHK01

+2

Привет, я автор 'shinyjs', эта ошибка возникает только в том случае, если ваш javascript буквально недействителен. Если бы вы могли опубликовать полностью воспроизводимый образец кода, который получил ошибку, я мог бы попробовать отладить –

+1

Я еще не пробовал использовать код, но поскольку вы используете отдельный файл js, вам нужно сделать 'extendShinyjs (script = "myfunc.js"). Вы используете аргумент 'text', только если вы предоставили JS-код в виде строки. PS. Было бы легче отладить, если вы разместите минимальный пример, а не тот, который включает в себя компоненты shinyAce и другие компоненты пользовательского интерфейса. –

ответ

2

Я могу запустить ваш пример (но для простоты я сделал код JS строкой вместо своего собственного файла. Если вы хотите, чтобы она была в файле, вам нужно использовать параметр file =, как я сказал в своем комментарии.

Просто, чтобы доказать, что JS работает, я изменил функцию JS из «изменения фона» просто печатая значение кнопки Позвольте мне знать, если это точный код вызывает ошибку:.

library(shiny) 
library(shinyjs) 
library(shinyAce) 

jscode <- " shinyjs.pageCol = function(params){ 
     alert(params); 
    };" 

runApp(shinyApp(
    ui = fluidPage(
    shinyjs::useShinyjs(), 


    extendShinyjs(text = jscode), 

    navbarPage("Tweets stuff", 
       tabPanel("Contact", 
         sidebarLayout(
          sidebarPanel(
          textInput("ctFrom", "From:", value=""), 
          textInput("ctSubject", "Subject:", value="Sugerencias BTT"), 
          actionButton("ctSend", "Send") 
         ), 
          mainPanel(
          aceEditor("ctMessage", value="") 
         ) 
         ) 
       )) 
), 
    server = function(input, output, session) { 
    observeEvent(input$ctSend, { 
     #I have more things here 
     js$pageCol (input$ctSend) 
    }) 
    } 
)) 
+0

Большое вам спасибо за вашу быструю помощь. Конечно, это работает! В случае использования файла сценария, я проверил с extendShinyjs (script = "www \\ myfuncs.js"), как прокомментировал раньше, и он работает! – aloplop85

Смежные вопросы