0

我想将向量extendshinyjs作为 JS 数组传递,但似乎向量实际上是作为字符串传递的。这是我的代码:

用户界面

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 参数是一个包含一个元素的数组,其中该元素是您传入的向量(正如我在另一个线程中告诉您的那样 - 我没有撒谎!)

尝试这个:

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