2016-02-13 5 views
0

условных язычки выходных участков я работал отлично, построив графики вывода $ VtPlot [1: N] на server.R стороне, затем сборка в tabsetPanel с:R - Блестящие условные язычки на -input-

output$plotTabs = renderUI({ 
    nTabs <- as.numeric(input$nTraces) 
    plotTabs <- lapply(paste0('VtPlot', 1:nTabs),function(nm)tabPanel(nm,plotOutput(nm))) 
    do.call(tabsetPanel, plotTabs) 
}) 

вход $ nTrace только на вкладке 1 (всегда отображается) на стороне ввода. Каждый из этих потенциальных графиков построен с вводами входных вкладок, которые соответствуют по числу. Тогда

mainPanel ( uiOutput ('plotTabs') )

в ui.R

Однако я по-прежнему бороться с созданием -input- вкладки условного от ввода $ nTrace. Я пробовал строить tabPanels как на сайтах ui.R, так и на server.R несколькими способами и связыванием с do.call, пока не повезло. Я предполагаю, что мне не хватает чего-то очевидного? Thanks

ответ

0

Conditional Panel Вы ожидаете?

Создает видимую или нет видимую панель в зависимости от значения выражения JavaScript. Выражение JS оценивается один раз при запуске и всякий раз, когда Shiny обнаруживает соответствующее изменение ввода/вывода.

Следующий код из ?conditionalPanel и "input.plotType == 'hist'" в вашем случае будет "input.nTraces== 1" (Поскольку условие здесь является Java-стиль):

sidebarPanel(
    selectInput(
     "plotType", "Plot Type", 
     c(Scatter = "scatter", 
     Histogram = "hist")), 

    # Only show this panel if the plot type is a histogram 
    conditionalPanel(
     condition = "input.plotType == 'hist'", 
     selectInput(
     "breaks", "Breaks", 
     c("Sturges", 
      "Scott", 
      "Freedman-Diaconis", 
      "[Custom]" = "custom")), 

     # Only show this panel if Custom is selected 
     conditionalPanel(
     condition = "input.breaks == 'custom'", 
     sliderInput("breakCount", "Break Count", min=1, max=1000, value=10) 
    ) 
    ) 
) 
+0

У меня есть версия с условной -panels- на ш. R, используя условия Javascript. Борьба с вводом -tabs - появлением и исчезновением на настройку переключателя на первой вкладке. Я чувствую, что делает более понятный интерфейс, а не пустой вкладкой, когда пользователь активирует функционально неактивную вкладку. У меня есть простая версия, работающая таким образом, подобно выходным вкладкам в исходном коде. Деталь, которая меня отключает, - это взаимодействие на сервере. Сторона с: 'наблюдать ({updateSelectInput (сеанс, 'номинальный_токс', выбор = атрибуты (модель [[input $ fabProc]]))})' Спасибо –

Смежные вопросы