【发布时间】:2015-07-02 13:41:28
【问题描述】:
我正在开发一个闪亮的应用程序。 server.R 包含如下代码......
dFt1 <- reactiveValues()
dFt1$dat <- data.frame(loadTransactionData())
...
output$t_tab_1 <- DT::renderDataTable({
DT::datatable(
dFt1$dat
,selection = list(mode = "single")
,options = list(
rownames = TRUE
,pageLength = 10
,order = list(list(2,"desc"),list(1,"asc"))
)
)
})
...
observe({
if (is.null(input$delete) || input$delete == 0){return()}
session$sendCustomMessage(
type = 'jsCode'
,list(value = 'confirm("Are You Sure?");')
)
})
observeEvent(input$deleteConfirmChoice, {
if (input$deleteConfirmChoice == "TRUE") {
x <- input$t_tab_1_rows_selected
deleteTransaction(x)
isolate(dFt1$dat <- dFt1$dat[row.names(dFt1$dat) != x, ])
}
})
deleteTransaction <- function(x) {
qy <- "DELETE FROM Transactions where timestamp = '<t>'"
qy <- gsub("<t>",x,qy)
db <- dbConnect(SQLite(), dbname=systemDatabase)
dbGetQuery(db,qy)
dbDisconnect(db)
}
当然还有 ui.R 中的删除按钮和调用 javascript 确认框。
应用程序运行良好。我可以选择一条记录并删除它。然后我可以选择另一条记录。但我无法删除它。 javascript 确认框运行,但单击“是”不会删除记录。我想知道为什么一次可以,但下次不行。
有什么帮助吗?
【问题讨论】:
-
我想我有一些线索。在第一次尝试中,我单击了将 input$deleteConfirmChoice 设置为 TRUE 的 OK 按钮。当我第二次这样做时,它的值仍然是 true,所以值没有变化。因此,代码不会执行。如何解决这个问题?
标签: javascript r datatables shiny