从闪亮的小部件中获取可用选项

时间:2015-10-08 21:01:23

标签: r shiny

是否可以获得闪亮小部件的可用选项(即来自checkboxInput的所有可能的复选框)?

我有一些复选框输入,其中可供选择的选项取决于其他输入 - 它们由观察者更新。然后,假设我想要一个用户可以单击的按钮,并且将检查所有当前可用的复选框。

以下是一个说明性示例,我尝试使用updateCheckboxGroupInput和变量input$options更新复选框。但是,这不起作用,因为input$options只是当前选中的框,因此按钮不执行任何操作。

是否已存在包含所有可用复选框的变量,或者是否需要使用此信息维护另一个反应变量?

library(shiny)

shinyApp(
    shinyUI(
        fluidPage(
            uiOutput('ui')
        )
    ),

    shinyServer(function(session, input, output) {
        output$ui <- renderUI({
            inputPanel(
                checkboxGroupInput('options', 'Current Options:',
                                   choices=letters, selected='a', inline=TRUE),
                column(width = 2,
                    actionButton('subset', 'Subset the options'),
                    actionButton('selectAll', 'Select All'))
            )
        })

        ## Observers for buttons
        observeEvent(input$subset,
                     updateCheckboxGroupInput(session,
                                              inputId='options',
                                              choices=sample(letters, 10),
                                              inline=TRUE)
                     )

        observeEvent(input$selectAll,
                     updateCheckboxGroupInput(session,
                                              inputId='options',
                                              ## *** What do I put here for selected? ***
                                              selected=input$options,
                                              inline=TRUE)
                     )
    })
)

1 个答案:

答案 0 :(得分:0)

没有简单的Shiny内置方法可以做到这一点。您必须使用JavaScript查看选项,或将选项存储在反应变量中