r - 从 server.R 调用 "bind"-ed 输入

标签 r shiny inputbinding

我成功实现了 Shiny 的绑定(bind)功能,但该函数是在 ui.R 中定义的,并且来自 server.R 的任何对此新输入的调用都会导致函数未找到错误。

我将 session 传递给 server.R (不确定这是否有什么不同),并且我还创建了一个 global.R,其中只包含该函数(不确定我是否需要其他功能)因为这甚至不允许我调用 ui.R 中的函数)。

如何从 server.R(特别是在 renderUI 中)调用自定义 Shiny 输入函数?

此处的示例代码:(对 sortList 的调用在 ui.R 中工作正常,但在 server.R 中则不然) https://gist.github.com/jpd527/9687359

最佳答案

这是一个修补后的要点:https://gist.github.com/trestletech/9691459

主要有两个changes这里:

  1. 我移动了sortListInput函数为 global.R 。您提到您已经尝试过这样做,但它可以顺利地将函数公开给 serverUI .
  2. 下一个问题是您仅初始化 sortListInput在页面创建时。你有$( ".sortableList" ).sortable(); $( ".sortableList" ).disableSelection();在单例中<script>在你的<head> ,但这只会在页面创建时运行一次。这样动态创建了sortableLists稍后创建的将永远不会被初始化。所以我添加了一个<script> block 到你的sortListInput每次生成新代码时都会运行该代码。我现在不知道有一种更干净的方法可以做到这一点,但也许确实/将会存在......

需要注意的几点:

  • 由于您现在正在初始化所有 sortListInputs每次动态创建时,您都需要确保该初始化代码是幂等的 - 即,当您运行该代码时不会破坏现有的代码。
  • 我注意到您正在加载您自己的 jQuery 版本和其他一些 jQuery 库。请注意这一点,因为 Shiny 也有它所依赖的 jQuery 版本。您需要确保不存在任何冲突。

关于r - 从 server.R 调用 "bind"-ed 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22546653/

相关文章:

r - 如何在R中执行大型数据集的完全外部联接?

r - 每次迭代后跳过元素乘以列的元素

r - 如何从筛选数据表 (DT) 的选定行中获取数据?

session - 是否为每个shinyR session 分配了唯一的 session id/ session key ?

c# - InputBinding 和 WebBrowser 控件

r - 如何使用 2 个不同的 y 轴进行绘图?

r - 如何在 h2o 中重新分配 model_id

r - ggplot2 本地和 Shiny 托管输出之间的差异

c# - 具有延迟和键绑定(bind)的 XAML 绑定(bind)