我想将一个向量作为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')
)
))
server.R
shinyServer(
function(input,output,session) {
x <- c('red', 'yellow', 'green')
js$pageCol(x)
})
global.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]);
});
}"
在右边看起来现在的样子,在左侧我期望看到什么
答案 0 :(得分:1)
矢量未作为字符串传递,它正在转换为javascript数组。 javascript参数是一个包含一个元素的数组,其中该元素是您传入的向量(正如我在另一个帖子中告诉您的那样 - 我没有说谎!)
试试这个:
shinyjs.pageCol = function(params){
var cols = params[0];
$('p').each(
function(i, el) {
$(el).text(cols[i]);
}
);
}