R Shiny HTML Callback

时间:2018-01-22 06:05:25

标签: r shiny shiny-server

我正在尝试为R Shiny renderDataTable中的每一行创建4个单选按钮。我做了一些研究,发现这段代码适用于我的目的:

  output$featureset = DT::renderDataTable(
  m, escape = FALSE, selection = 'none', server = FALSE,
  options = list(dom = 't', paging = FALSE, ordering = FALSE)
  ,
  callback = JS("table.rows().every(function(i, tab, row) {
                  var $this = $(this.node());
                  $this.attr('id', this.data()[0]);
                  $this.addClass('shiny-input-radiogroup');
});
                  Shiny.unbindAll(table.table().node());
                  Shiny.bindAll(table.table().node());"
  )
)

但是,在创建此动态数据集并生成这些单选按钮之前,我需要创建一个spark连接。连接创建和动态加载数据需要花费一些时间,所以我想我会点击按钮。因此,我引入了一个按钮并创建了一个连接,并在该按钮单击(eventReactive)后面加载了数据。

现在,我的问题是我不确定如何制作' renderDataTable'依赖于该按钮单击。我尝试过这样的if条件:

  output$featureset = DT::renderDataTable({
    if (is.null(conn_spark())) {print('commmon')}
      dataset
    },escape = FALSE, selection = 'none', server = FALSE, options = list(dom = 't', paging = FALSE, ordering = FALSE),
                      callback = JS("table.rows().every(function(i, tab, row) {
                                      var $this = $(this.node());
                                      $this.attr('id', this.data()[0]);
                                      $this.addClass('shiny-input-radiogroup');
                    });
                                      Shiny.unbindAll(table.table().node());
                                      Shiny.bindAll(table.table().node());"
                      )
  ) 

但是,由于某种原因它不起作用。我没有看到任何创造的东西。我很感激任何帮助。感谢。

如果有任何可以帮助的事情,请随时告诉我,但我还没有提到我的问题。我很乐意这样做。

0 个答案:

没有答案