2014-03-02 41 views
2

我想使用conditionPanel,只有在前面的textInput已完成(它的初始值爲「」)時纔會出現。正確地在conditionalPanel中定義條件的正確方法是什麼?這裏是一個可重複的代碼:R shiny:條件面板條件基於textInput(如何)

ui <- pageWithSidebar(
headerPanel("TEST"), 
sidebarPanel(
textInput('test', "","")), 

mainPanel(    
conditionalPanel(condition = "input.test != "" ", #problem is here. I've tried many possibilities (such as input.test > 0) but none have worked 
       helpText("abc")) 
) 
) 

server <- function(input,output){ 
} 

runApp(list(ui=ui,server=server)) 

任何意見/建議將不勝感激!

乾杯

+0

更改爲'條件'或' 「input.test.length> 0」 ' –

+0

非常感謝傑克! (我不是太遠,但它仍然是一個很好的學習點) – user1431694

+0

我添加了它作爲一個答案,更多的解釋。 –

回答

4

正如評論指出的那樣,改變條件"input.test != ''"'input.test != ""'的作品,因爲它具有引號中引號的問題涉及。

另一個解決辦法是改變條件"input.test.length > 0"這工作,因爲如果你看一下源代碼conditionalPanel(如下圖),它只是創造一個div其中data-display-if屬性是條件。考慮到它直接到html,這是一個很好的猜測,使用js的條件將工作。

而且我可能只是閱讀文檔......從?conditionalPanel: 「input.test = ''」

condition: A JavaScript expression that will be evaluated repeatedly to 
      determine whether the panel should be displayed. 

conditionalPanel 
function (condition, ...) 
{ 
    div(`data-display-if` = condition, ...) 
} 
+0

這太棒了! – user1431694