2016-08-24 7 views
0

conditionalPanelを、selectInputドロップダウンボックスの項目数に基づいて実装しようとしています。しかしconditionalPanelが光沢のある状態でinputSelectの項目数に基づいて

runApp(
    list(ui = fluidPage(
    textInput("in_number", "number",1), 
    uiOutput("dropdown"), 
    conditionalPanel("input.dropdown >= 3", p("show some stuff")) 
), 

    server = function(input, output, session) { 

    output$dropdown <- renderUI({ 
     selectInput("dropdown","My Dropdown", c(1:input$in_number)) 
    }) 
    } 
) 
) 

は、私は以下の通りそれはドロップダウンの値に基づいてされたときに動作するように条件を得ることができます

textInputフィールドでは、ドロップダウンの項目数を設定することができます) conditionalPanelを次のように変更した場合:

これは機能しません。開発ツールコンソールでエラーメッセージが表示される"未定義の長さ 'プロパティを読み取ることができません。

これは、光沢がドロップダウンアイテムをどのように定義するかと関係があります。

編集:私のニーズを明確にする。 ドロップダウンの値を評価するのではなく、ドロップダウン内の項目数を評価できるJavaScript条件を実行する方法はありますか?

答えて

-1

あなたは今何を意味しているのですか。 shinyjsパッケージとその機能のtoggleを使用することをお勧めします。

rm(list = ls()) 
library(shiny) 
library(shinyjs) 
runApp(
    list(ui = fluidPage(
    shinyjs::useShinyjs(), 
    textInput("in_number", "number",3), 
    uiOutput("dropdown"),  
    p(id = "mydiv", "show some stuff") 
), 

    server = function(input, output, session) { 
    output$dropdown <- renderUI({ 
     selectInput("dropdown1","My Dropdown", c(1:input$in_number)) 
    })  

    observe({ 
     toggle(id = "mydiv", condition = as.numeric(input$in_number) >= 3) 
    }) 
    } 
) 
) 

enter image description here

+0

元のコードは、ドロップダウンリストの値に基づいて 'conditionalPanel'を管理するための作業を行います。それは私の問題ではありません。私の問題は、ドロップダウンの項目数に基づいてそれを行うことができないということです。ドロップダウンに3つ以上のアイテムがある場合は、選択した値に関係なく、「いくつかのものを表示したい」とします。 – Dan

+0

@Dan、上のコードはあなたが望むものを正確に実行しています! '' My Dropdown ''の中の '' Show some stuff'を3以上の値で表示します。 –

+0

私のオリジナルのコメントを読み、私の質問に編集します。私の元のコードは、3の周りの引用符を推奨せずにもそれを行いました。私は 'conditionalPanel'を示すドロップダウンの値には興味がありません。私は 'conditionalPanel'をどのくらい多くの要素から選ぶことができるかに基づいて示したいと思います。これらの要素の価値ではありません。 – Dan

関連する問題