0

にベクトルをJS配列として渡したいのですがextendshinyjs、実際にはベクトルが文字列として渡されているようです。これが私のコードです:

ui.R

shinyUI( fluidPage(
  useShinyjs(),
  extendShinyjs(text = jsCode),
 tags$div('color names',
  tags$p(class='colorName'),
  tags$p(class='colorName'),
  tags$p(class='colorName')
 )


))

サーバー.R

shinyServer(
    function(input,output,session) {
      x <- c('red', 'yellow', 'green')
        js$pageCol(x)
      })

グローバル.R

library(shinyjs)
library(shiny)
jscode <-  jsCode <- "shinyjs.pageCol = function(params){
                             var $spots = $('p').text(params);
      defaultParams = ['NA','NA','NA'];
      val = shinyjs.getParams(params, defaultParams);


$spots.each(function(i) {
$(this).text(val[i]);
}); 

}"

右が現在の様子、が今後の展望

右側が現在の様子、**左側**が私が期待するもの

4

1 に答える 1

1

ベクトルは文字列として渡されず、javascript 配列に変換されています。javascript パラメータは 1 つの要素を持つ配列であり、その要素は渡されたベクトルです (別のスレッドで言ったように、私は嘘をついていません!)

これを試して:

shinyjs.pageCol = function(params){
  var cols = params[0];
  $('p').each(
    function(i, el) {
      $(el).text(cols[i]);
    }
  );
}
于 2017-01-02T17:20:11.160 に答える