使用带闪亮的 Flexdashboard 时如何拥有可编辑的 DT 表?

Posted

技术标签:

【中文标题】使用带闪亮的 Flexdashboard 时如何拥有可编辑的 DT 表?【英文标题】:How to have an editable DT table when using Flexdashboard with shiny? 【发布时间】:2022-01-12 18:30:31 【问题描述】:

我不知道这是否是最好的方法,但非常感谢任何指导。我有一张桌子,我将在我的一个 flexdashboard 中显示应用程序。此表显示 ID、接收日期和空白状态。

我希望用户在看到应用程序后进入那里并输入一个状态并将该状态保存在表格中。我可以使用 editable=TRUE 来做到这一点,但是当我重新加载闪亮的应用程序时它不会保存。

最好的方法是什么?

Code

---
title: "CARS TABLE "
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
    runtime: shiny
---

```r setup, include=FALSE
library(flexdashboard)
library(shiny)
library(DT)
```

Column data-width=650
-----------------------------------------------------------------------

### Chart A

```r

data <- data.frame(id = c(12456,12457,12458,12459,12569,23456),
                   date_recived = c("10/25/2021", "10/05/2021","11/25/2021","11/25/2021","11/25/2021","10/22/2021"),
                   status = c("","","","","",""))

datatable(data
  ,
          editable = TRUE,
  options = list(
    columnDefs = list(list(className = 'dt-center', targets = "_all")))
)
```

【问题讨论】:

【参考方案1】:

为了保存用户输入,您需要一个服务器端进程来与数据库系统交互(读取和写入)或写入系统上的文件。

事情是,flexdashboard 根据定义是一个 html 文件没有服务器端进程,所以就您的示例而言,没有本地方法可以使用 flexdashboard 执行此操作。

您的解决方案是:

变成shiny 应用程序。 创建一个 REST API(例如,使用 plumber 或直接在 NodeJS 中),然后从您的 HTML 文件中调用 javascript。例如https://api.jquery.com/jquery.post/。

【讨论】:

感谢您花时间解释这一点。我正在尝试将使用带有一些小闪亮元素的 flexdashboard 转换为纯闪亮。

以上是关于使用带闪亮的 Flexdashboard 时如何拥有可编辑的 DT 表?的主要内容,如果未能解决你的问题,请参考以下文章

弹出模式中的闪亮模块化输入在关闭时不会被写入响应值 [flexdashboard/shinydashboard]

使用 flexdashboard 模板重现闪亮

使用 Flexdashboard 部署 Shiny 应用程序

闪亮的 Flexdashboard 中的 image_composite (Magick) 返回错误

尝试从 R 脚本渲染闪亮的 flexdashboard 时找不到错误对象输出

在 flexdashboard 闪亮小部件中创建一个依赖于另一个输入变量的输入变量