Длина тестового вектора (JS) для использования с условной панелью (Shiny R)

0 Jordan Mackie [2015-07-13 20:04:00]

Я пытаюсь создать условную панель в Shiny на основе длины вектора ввода (символьной строки). В частности, у меня есть виджет fileInput (например, Id = FILEWIDGET), и я хочу отображать условную панель, только если количество загруженных файлов <= 1. Я не говорю javascript, но условное выражение, написанное в R, будет выглядеть так::

conditionalPanel(condition = input$FILEWIDGET$name <= 1 , ...)

Надеюсь, это простой вопрос для тех, кто знаком с JS. Заранее спасибо.

javascript r shiny


1 ответ


0 Dean Attali [2015-07-15 01:09:00]

Я нашел выражение, чтобы положить в условную панель, чтобы она работала.

runApp(shinyApp(
  ui = fluidPage(
    fileInput("files","sdfsd", multiple = TRUE),
    conditionalPanel("$('#files')[0].files.length <= 1", p("<= 1 files selected"))
  ),
  server = function(input, output, session) {
  }
))

Однако это немного неудобно, потому что он не использует обычный блестящий формат состояния "input.files...", и вместо этого я использую jQuery для этого условия. Я не знаю, скажут ли блестящие разработчики, что это хорошо, или если они скажут это плохо. Файлы обрабатываются странным образом в Shiny, и использование input.files.files.length, похоже, не работает, поэтому мне пришлось вернуться к jQuery