2016-02-13 39 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條目。這些潛在陰謀中的每一個均由來自輸入選項卡的條目構成,這些條目在數量上相對應然後,

的mainPanel( uiOutput( 'plotTabs') )

在ui.R

但是,我繼續使-input-標籤條件開關量輸入$ nTrace奮鬥。我已經嘗試在ui.R和server.R上構建tabPanels,並且使用do.call綁定,至今沒有運氣。我假設我錯過了一些明顯的東西? 謝謝

回答

0

是您期望的Conditional Panel

根據JavaScript表達式的值創建一個可見或不可見的面板。 JS表達式在啓動時以及每當Shiny檢測到輸入/輸出中的相關更改時都會評估一次。

下面的代碼是從?conditionalPanel,並"input.plotType == 'hist'"你的情況是"input.nTraces== 1"(因爲這裏的條件是一個JavaScript風格):

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

我對UI條件-panels-一個版本。 R方面使用JavaScript條件。掙扎着輸入-tabs-每個第一個選項卡上的單選按鈕設置出現和消失。當用戶激活功能無效的選項卡時,我覺得這使得界面更清晰,而不是空白選項卡。 我有這樣簡單的工作方式,類似於原始代碼中的輸出標籤。絆倒我的細節是在server.R端的交互:'observe({updateSelectInput(session,'nominal_tox',choices = attributes(model [[input $ fabProc]]))})' 謝謝 –