Итак, в одном из моих предыдущих вопросов у меня возникла проблема о том, как восстановить закладку и запустить модель.Это просто воспроизводимый пример, но, как приложение, я бы хотел его модульнить, так как размер приложения продолжает увеличиваться.У меня есть код ниже.В модуле 1 я хочу вызвать отображение данных и вызвать модуль 2, когда пользователь нажимает на закладку. На данный момент у меня есть код в модуле 1, который не работает.Код для модуля 2 находится в разделе сервера.Как я могу модулировать это приложение.
" Вариант использования для блестящего приложения, в котором пользователи могут ввести какое-то значение, и при щелчке по нему запускается модель и показываются значения в таблице. Теперь, когда я нажимаю на закладку, оно захватываетвходные значения. И когда я нажимаю на закладку восстановления, она заполняет входные значения. Что я хочу сделать, это после того, как восстанавливает входные значения, она также должна снова запустить модель и заполнить значения в таблице.заполните значения и нажмите кнопку запуска, чтобы запустить модель."
library(shiny)
library(RSQLite)
library(data.table)
library(DT)
library(dplyr)
#### Module 1 renders the first table
opFunc <- function(input, output, session, modelRun,modelData,budget){
output$x1 <- DT::renderDataTable({
modelRun()
datatable(
df %>% mutate(Current = as.numeric(Current)*(budget())), selection = 'none', editable = TRUE
)
})
}
tableUI <- function(id) {
ns <- NS(id)
dataTableOutput(ns("x1"))
}
#### ideally the second module for bookmarks
opBookmark <- function(){}
ui <- function(request) {
fluidPage(
tableUI("opfun"),
column(12,
column(3,tags$div(title="forecast", numericInput("budget_input", label = ("Total Forecast"), value = 2))),
column(2, textInput(inputId = "description", label = "Bookmark description", placeholder = "Data Summary")),
column(2, bookmarkButton(id="bookmarkBtn"))),
column(2, actionButton("opt_run", "Run")),
tags$style(type='text/css', "#bookmarkBtn { width:100%; margin-top: 25px;}")
)
}
server <- function(input, output, session) {
callModule( opFunc,"opfun",modelRun = reactive(input$opt_run),modelData = df,budget = reactive(input$budget_input))
observeEvent(input$opt_run, {
cat('HJE')
})
observeEvent(input$bookmarkBtn, {
session$doBookmark()
})
}
enableBookmarking(store = "url")
shinyApp(ui, server)