1

GitHub: linkの簡単なテストでextendsShinyJsをテストしています。

V8 パッケージをインストールしましたが、サンプル スクリプトを使用しても次のエラーが発生します

また、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);
    };

サーバー.R:

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

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

もっとコードを見る必要があると思うかどうか私に尋ねてください。「aceEditor」内のテキストをクリアしたかったのです。

迅速なご協力ありがとうございます。

4

1 に答える 1

3

あなたの例を実行できます(ただし、簡単にするために、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)
    })
  }
))
于 2015-07-31T18:58:41.857 に答える