我正在尝试使用闪亮创建一个分类(而不是数字)滑块sliderInput
。感谢 Dean Atali 在这里的回答(Shiny slider on logarithmic scale),我能够创建滑块。
但是,我需要在其中创建滑块server
并通过 和 将其传递给renderUI
UI uiOutput
。但是,当我在服务器端sliderInput
进行renderUI
调用时,它不再起作用。这里有两个示例:第一个显示分类滑块如何工作(不使用renderUI
/时uiOutput
),第二个显示分类滑块如何不工作(使用renderUI
/时uiOutput
)。
工作示例(在 UI 中创建的滑块)
library(shiny)
JScode <-
"$(function() {
setTimeout(function(){
var names = ['Unrated', 'Emerging', ' ', 'Formative', ' ', ' ', 'Developed', ' '];
var vals = [];
for (i = 0; i < names.length; i++) {
var val = names[i];
vals.push(val);
}
$('#pvalue').data('ionRangeSlider').update({'values':vals})
}, 7)})"
runApp(shinyApp(
ui = fluidPage(
tags$head(tags$script(HTML(JScode))),
textOutput('texty'),
sliderInput("pvalue",
"PValue:",
min = 0,
max = 7,
value = 0
)
),
server = function(input, output, session) {
output$texty <- renderText({
input$pvalue
})
}
))
非工作示例(在 中创建的滑块server
)
library(shiny)
JScode <-
"$(function() {
setTimeout(function(){
var names = ['Unrated', 'Emerging', ' ', 'Formative', ' ', ' ', 'Developed', ' '];
var vals = [];
for (i = 0; i < names.length; i++) {
var val = names[i];
vals.push(val);
}
$('#pvalue').data('ionRangeSlider').update({'values':vals})
}, 7)})"
runApp(shinyApp(
ui = fluidPage(
tags$head(tags$script(HTML(JScode))),
textOutput('texty'),
uiOutput('uu')
),
server = function(input, output, session) {
output$texty <- renderText({
input$pvalue
})
output$uu <- renderUI({
sliderInput("pvalue",
"PValue:",
min = 0,
max = 7,
value = 0
)
})
}
))
生成滑块时,如何使滑块显示类别(而不是数字)server
?