Блестящий - истинное или ложное значение при установке флажка в таблице данных

У меня проблема с блестящим кодом R, что мне делать, если я хочу увидеть истинное или ложное значение в поле флажка? потому что, когда я пытаюсь напечатать (input $ row1), результат будет ПУСТО (NULL), и когда я ставлю галочку в поле, в инструкции печати нет ответа. это код:

library(shiny)
library(DT)
mymtcars = mtcars
mymtcars$id = 1:nrow(mtcars)
runApp(
  list(ui = pageWithSidebar(
    headerPanel('Examples of DataTables'),
    sidebarPanel(

    ),
    mainPanel(
      uiOutput("mytable")
    )
  )
  , server = function(input, output, session) {

    output$mytable = renderUI({
      addCheckboxButtons <- paste0('<input type="checkbox" id="row', mymtcars$id, '">',"")
      yyy<- cbind(mymtcars[, names(mymtcars[,2:4]), drop=FALSE],Pick=addCheckboxButtons)

      #try
      print(input$row1) #didnt work
      print(input$row2) #didnt work

      #Display table with checkbox buttons
      list(
      renderDataTable(yyy,
                    options = list(orderClasses = TRUE,
                                   lengthMenu = c(5, 25, 50),
                                   pageLength = 25, 
                                   callback = JS("function(table) {
                                                 table.on('change.dt', 'tr td input:checkbox', function() {
                                                 setTimeout(function () {
                                                 Shiny.onInputChange('rows', $(this).add('tr td input:checkbox:checked').parent().siblings(':last-child').map(function() {
                                                 return $(this).text();
                                                 }).get())
                                                 }, 10); 
                                                 });
    }")),escape = FALSE

                    ))
      } 
  )
    }
      )
                    )

person lukman    schedule 17.06.2016    source источник


Ответы (1)


См. Короткий пример (только для row1)

1) Вы можете использовать Shiny.bindAll

2) Вы должны увидеть печать в observe

 library(shiny)
library(DT)
mymtcars = mtcars
mymtcars$id = 1:nrow(mtcars)
runApp(
  list(ui = pageWithSidebar(
    headerPanel('Examples of DataTables'),
    sidebarPanel(
      checkboxGroupInput('show_vars', 'Columns to show:', names(mymtcars),
                         selected = names(mymtcars))
      ,textInput("collection_txt",label="Foo")
    ),
    mainPanel(
      DT::dataTableOutput("mytable")
    )
  )
  , server = function(input, output, session) {

    observe({
      print(input$row1)
    })

    output$mytable = DT::renderDataTable({
      #Display table with checkbox buttons
      DT::datatable(cbind(Pick=paste0('<input type="checkbox" id="row', mymtcars$id, '" value="', mymtcars$id, '">',""), mymtcars[, input$show_vars, drop=FALSE]),
                    options = list(orderClasses = TRUE,
                                   lengthMenu = c(5, 25, 50),
                                   pageLength = 25 ,

                                   drawCallback= JS(
                                     'function(settings) {
                                         Shiny.bindAll(this.api().table().node());}')
                    ),selection='none',escape=F)


    } )

  })
)
person Batanichek    schedule 18.06.2016