如何在Shiny中呈现的rhandsontable访问JS变量名?

时间:2017-09-27 13:14:09

标签: javascript r shiny handsontable rhandsontable

我使用rhandsontable包在Shiny app中创建交互式表格。

我需要根据其他一些用户操作以以编程方式选择一些单元格。 但是,我在R。

中的rhandsontable包装器中找不到这样的功能

同时,在使用selectCell()的原生Handsontable.js中绝对有可能 功能。我附上小jsfiddle示例:



document.addEventListener("DOMContentLoaded", function() {
  var data = [
    ["", "Ford", "Volvo", "Toyota", "Honda"],
    ["2014", 10, 11, 12, 13],
    ["2015", 20, 11, 14, 13],
    ["2016", 30, 15, 12, 13]
  ];

  var container = document.getElementById('example1');
  var hot = new Handsontable(container, {
    data: data,
    minSpareRows: 1,
    rowHeaders: true,
    colHeaders: true,
    contextMenu: true
  });

  hot.selectCell(1, 0);
})

</style><!--  --><script src="https://docs.handsontable.com/0.15.0/scripts/jquery.min.js"></script><script src="https://docs.handsontable.com/0.15.0/bower_components/handsontable/dist/handsontable.full.js"></script><link type="text/css" rel="stylesheet" href="https://docs.handsontable.com/0.15.0/bower_components/handsontable/dist/handsontable.full.min.css">
&#13;
<div id="example1" class="hot handsontable"></div>
&#13;
&#13;
&#13;

http://jsfiddle.net/vz74zeqo/

所以,我可以运行shinyjs::runjs('hot.selectCell(1,0);'),一切都会好的。

但问题是:当在Shiny中使用renderRHandsontable()函数创建时,如何学习与表关联的JS变量名? (在我的例子中,它被命名为hot

谢谢!

亚历

1 个答案:

答案 0 :(得分:1)

这篇文章帮助: Search from a textInput to a Handsontable in Shiny

当我通过output$myTab = renderRHandsontable({rhandsontabe(faithful)})渲染rhandsontable时,我可以在JS getInstance()中使用以下命令:

HTMLWidgets.getInstance(myTab).hot.selectCell(0,1)