блестящий Изменить ввод данных кнопок

У меня есть форма с активной кнопкой, проблема в том, что я хочу сбросить кнопку в этой форме output$exampleFasta = 0, но она выдает исключение, как я могу изменить данные переменной? или если существует что-то вроде renderImage, которое может предоставить информацию для определенного атрибута, такого как идентификатор.

index.html

<form class="span12 menu-med-upload">
  <div class="row-fluid">
   <h3>Upload File .fasta</h3>
   <div class="custom-input-file btn btn-inverse">
    <input type="file" size="1" name="fileFasta" id="fileFasta" class="input-file" />
    Select File
   </div>
   <img src="/static/img/check.png" class = "custom-input-check">
   <div class="span12"></div>
   <textarea class = "span12" rows  = "10" style="resize: none;" id="textAreaFasta">
   </textarea>
 </div>
 <button id="uploadFasta" type="button" class="btn btn-inverse action-button" >Upload  File</button>
 <button id="exampleFasta" type="button" class="btn btn-inverse action-button" >Example</button>
</form>

сервер.R

output$table <- renderText({
  if(input$exampleFasta != 0 && input$uploadFasta == 0){
    return(myRenderTable(matrixProteinExample(),"table",""))
  }
  if(input$uploadFasta != 0){
    return(myRenderTable(matrixProtein(),"table",nameFile))   
  }
})

изменить с чем-то вроде этого. но это неправильно.

output$table <- renderText({
  if(input$exampleFasta != 0 && input$uploadFasta == 0){
    output$exampleFasta <- 0
    return(myRenderTable(matrixProteinExample(),"table",""))
  }
  if(input$uploadFasta != 0){
    return(myRenderTable(matrixProtein(),"table",nameFile))   
  }
})

person user2720097    schedule 15.09.2013    source источник


Ответы (1)


Если вы спрашиваете, как узнать, какая кнопка actionButton (если она есть!) была нажата совсем недавно, то сброс до 0 — не лучший способ сделать это. Вместо этого сделайте следующее:

shinyServer(function(input, output, session) {

  # Create a reactiveValues object, to let us use settable reactive values
  values <- reactiveValues()
  # To start out, lastAction == NULL, meaning nothing clicked yet
  values$lastAction <- NULL
  # An observe block for each button, to record that the action happened
  observe({
    if (input$exampleFasta != 0) {
      values$lastAction <- 'example'
    }
  })
  observe({
    if (input$uploadFasta != 0) {
      values$lastAction <- 'upload'
    })
  })

  # Then you can use values$lastAction in reactive expressions, outputs, etc.
  output$table <- renderText({
    if (is.null(values$lastAction))
      return(NULL)
    if (identical(values$lastAction, 'upload'))
      return(myRenderTable(matrixProtein(), "table", nameFile))
    if (identical(values$lastAction, 'example'))
      return(myRenderTable(matrixProteinExample(), "table", ""))
    stop("Unexpected value for lastAction: ", values$lastAction)
  })
})
person Joe Cheng    schedule 16.09.2013