出于某种原因,当 bsModal 内容被observeEvent服务器端的 an 触发时,它的显示似乎出错了,图像和/或文本不会出现,并且Sweetalerts在某些情况下似乎也会导致禁用(基本上是预构建的模态) )。
我shinyjs出于这个原因进行了标记,因为该应用程序包含与其交互。除了很长的帖子和复杂的问题,我希望这bsmodal部分以及sweetalert编码shinyJS,这是 Dean Attali 的工作副本,可以帮助其他一些碰巧读到这篇文章的人。如果觉得有用,就给帖子点个赞吧。 
下面是一个包含场景 1、2 和 3 的完整应用程序。场景 4 和更进一步的场景不在完整的应用程序中,因为有些场景会导致应用程序的其他部分在您添加它们的代码后立即停止工作。我建议最后尝试该应用程序,然后通读我的场景。(试图使其尽可能清楚。)
我正在bsModals向我的Shiny程序(非常大的复杂应用程序)添加新功能,并在尝试将图像合并到bsmodals. 我对问题发生的时间进行了一些研究,并在此处展示了一个包含多种场景的测试应用程序。
出于我的目的,我需要弄清楚为什么场景 7b 不起作用,即来自服务器的 bsmodal 带有图像和观察事件来激活它, 
第二个主要问题是,你能以某种方式trigger = input$button1在 bsmodal 中以trigger = values$variable某种方式编码参数吗?我试过这个,但无法弄清楚。
主要问题似乎围绕着trigger =参数 insidebsmodal()与使用observeEvent()with 的行为差异toggleModal()
例如,这在 UI 方面工作正常:
即modal出现,并且sweetalert应用程序中的 出现在开始时
 actionButton("show1", "Show modal 1"), …我一直在努力像疯了一样要解决的显然是最基本的问题。想象一下,您有一个散点图,例如…… 10 个标记。我想这个图是在 Shiny 环境中使用 plotly 生成的。
使用event_data("plotly_click")代码可以轻松获得这些标记的坐标。
现在假设您不需要这些标记的坐标,而是通过鼠标点击生成的坐标,但恰好在不存在标记的地方(例如,因为您想在那里设置一个新标记,并且您想重新使用来自鼠标点击的信息)。
我无法使用onclick(),或其他方式获得这种行为。
任何的想法 ?
我有一个简单的应用程序,只使用几个包
library(shiny)
library(tableHTML)
library(shinyWidgets)
library(shinyFeedback)
library(lubridate)
总体而言,加载后速度很快,但在新会话窗口上需要 3-4 秒。
当我在https://developers.google.com/speed/pagespeed/insights/上分析它时, 这是主要问题
资源正在阻止您的页面的第一次绘制。考虑提供关键的 JS/CSS 内联并推迟所有非关键的 JS/样式。了解更多。
URL
Transfer Size
Potential Savings
…shared/shiny.min.css()
1.9 KiB
180 ms
…css/shinyfeedback.css()
0.6 KiB
330 ms
…css/all.min.css()
12.7 KiB
630 ms
…css/v4-shims.min.css()
4.4 KiB
480 ms
…css/toastr.min.css()
3.1 KiB
330 ms
…shinyWidgets/shinyWidgets.min.css()
1.0 KiB
330 ms
…bootstrap-switch-3.3.4/bootstrap-switch.min.css()
1.4 KiB
180 ms
…css/bootstrap.min.css()
19.6 KiB
780 ms
…css/bootstrap-accessibility.min.css()
0.8 KiB
180 ms
…__assets__/shiny-server.css()
1.3 KiB
180 ms
…shared/jquery.min.js()
30.5 KiB
1,080 ms
…shared/shiny.min.js()
25.7 KiB …我shinyjs在 R 中使用包来允许onclick类型事件在选项卡集中的选项卡之间导航。每个选项卡都有一个特定的侧边栏,并且在每个选项卡之间有多种(两种)方式(即通过单击选项卡本身或单击 valueBoxes)。我想确保无论您以何种方式进入特定选项卡,都会加载正确的侧边栏。
# load libraries
require(shiny)
require(shinydashboard)
require(shinyjs)
# create a simple app
ui <- dashboardPage(
  title='Loading graphs',
  dashboardHeader(
    title = 'Loading Graphs'
  ),
  dashboardSidebar(
    div(id='tab1_sidebar',
        sliderInput('tab1_slider', 'tab1 slider', min=2,max=7,value=2)),
    shinyjs::hidden(
      div(id='tab2_sidebar',
          sliderInput('tab2_slider', 'tab2 slider', min=2,max=7,value=2))
      )
  ),
  dashboardBody(
    useShinyjs(),
    tabsetPanel(
      id = "navbar",
      tabPanel(title="tab1 title",id="tab1",value='tab1_val',
               valueBoxOutput('tab1_valuebox')),
      tabPanel(title="tab2 title",id="tab2",value='tab2_val',
               valueBoxOutput('tab2_valuebox'))
    )
  )
)
server <- shinyServer(function(input, output, session) {
  output$tab1_valuebox <- renderValueBox({
    valueBox('1000',subtitle = "blah blah",icon = icon("car"),
             color = "blue"
    )
  })
  output$tab2_valuebox …我在 Linux Ubuntu 16.04 LTS 上部署闪亮的应用程序时遇到了问题。运行 sudo systemctl startshiny-server 后,打开浏览器并访问http://192.168。.* :3838/StockVis/,网页一秒变灰。
我在web控制台中发现了一些警告,如下所示,并在网上查了一些信息,但仍然没有解决方案。:(
***"Thu Feb 16 2017 12:20:49 GMT+0800 (CST) [INF]: Connection opened. http://192.168.**.***:3838/StockVis/"  
Thu Feb 16 2017 12:20:49 GMT+0800 (CST) [DBG]: Open channel 0  
The application unexpectedly exited.
Diagnostic information is private. Please ask your system admin for permission if you need to check the R logs.  
**Thu Feb 16 2017 12:20:50 GMT+0800 (CST) [INF]: Connection closed. Info: {"type":"close","code":4503,"reason":"The application unexpectedly exited","wasClean":true}  
Thu Feb 16 2017 12:20:50 …我希望能够使用shinyjs 显示和隐藏打开/关闭我的UI 的各个部分。我需要从模块内访问模块外的部分 UI 。这可能吗?
请参阅随附的应用程序代码。主服务器代码中的显示/隐藏按钮有效,但模块中的按钮无效。
感谢您的任何建议。
exampleUI <- function(id) {
            ns <- NS(id)
            tagList(actionButton(ns("hide_id"), "Module - Hide divs"),
                    actionButton(ns("show_id"), "Module - Show divs"),
                    uiOutput(ns("plot_id")))
    }
    
    shinyUI(fluidPage(
            shinyjs::useShinyjs(),
                    shinyjs::hidden(tags$div(id = "hidden", "hidden")),
                    tags$div(id = "shown", "shown"),
                    actionButton("hide_id", "Hide divs"),
                    actionButton("show_id", "Show divs"),
                    exampleUI("eg")))
    example <- function(input, output, session)
    {
        ns <- session$ns
        
        observeEvent(input$hide_id,
        {
            shinyjs::hide("hidden")
            shinyjs::hide("shown")
        })
        observeEvent(input$show_id,
        {
            shinyjs::show("hidden")
            shinyjs::show("shown")
        })
    }
    
    shinyServer(function(input, output) {
    
        callModule(example, "eg")
        observeEvent(input$hide_id,
        {
            shinyjs::hide("hidden")
            shinyjs::hide("shown")
        })
        observeEvent(input$show_id,
        {
            shinyjs::show("hidden") …我正在尝试制作一个具有两层嵌套的数据表。第一个用于对行进行分组(https://github.com/rstudio/shiny-examples/issues/9#issuecomment-295018270),第二个应该打开一个模式(R ShinyBS 弹出窗口)。我可以让它单独工作,但第二层嵌套会产生问题。一旦有第二次嵌套,表中的数据就不再显示在折叠组中。
所以到目前为止我所做的至少有一个问题,那就是如何在有多个嵌套时正确显示它。在那之后,我不确定模式当前是否有效。我想知道这些 id 是否不会与现在的方式发生冲突。
任何提示表示赞赏。
# Libraries ---------------------------------------------------------------
library(DT)
library(shiny)
library(shinyBS)
library(shinyjs)
library(tibble)
library(dplyr)
library(tidyr)
library(purrr)
# Funs --------------------------------------------------------------------
# Callback for nested rows
nest_table_callback <- function(nested_columns, not_nested_columns){
    not_nested_columns_str <- not_nested_columns %>% paste(collapse="] + '_' + d[") %>% paste0("d[",.,"]")
    paste0("
            table.column(1).nodes().to$().css({cursor: 'pointer'});
            // Format data object (the nested table) into another table
            var format = function(d) {
              if(d != null){ 
                var result = ('<table id=\"child_' + ",not_nested_columns_str," + '\">').replace('.','_') + '<thead><tr>'
                for (var col …我正在尝试禁用 a Shiny-input,其值以另一个为条件Shiny-input。之前我查看了disable()来自 的函数shinyjs,但就我而言,它似乎无法禁用此类闪亮输入。下面是我的例子:
library(shiny)
library(shinyjs)
runApp(shinyApp(
  ui = fluidPage(
    useShinyjs(),
    sliderInput(inputId = "First", label = "First",
                      min = 10, max = 100, value = 40, step = 1),
    uiOutput("Second_UI")
  ),
  server = function(input, output, session) {
    output$Second_UI = renderUI({
              sliderInput(inputId = "Second", label = "Second", 
                min = 0, max = input$First, value = 5)       
            })
    disable("Second_UI")
  }
))
我基本上想要的是 - 我的第二个sliderInputieSecond仍然会从First响应中获取价值,但是用户不应该能够控制它。
任何指针都将受到高度赞赏。
谢谢,
我正在寻找一个代码片段,使用它,我可以在 Shinydashboard 标题中启用/禁用侧边栏切换按钮。
library(shiny)
library(shinydashboard)
library(shinyjs)
ui <- shinyUI(dashboardPage(
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody(
    useShinyjs()
  )
))
server <- shinyServer(function(input, output, session) {
  addClass(selector = "body", class = "sidebar-collapse") # Hide Side Bar
})
shinyApp(ui = ui, server = server)
让我知道是否有人可以提供帮助???
我想在闪亮的应用程序中冻结数据表的页眉和页脚。我已经研究并找到了这个链接https://datatables.net/examples/basic_init/scroll_xy.html。但是当我从上面的链接中包含脚本时,数据表并没有被冻结。请帮我解决这个问题。
library(shiny)
library(shinydashboard)
ui <- dashboardPage(skin = "black",
                    dashboardHeader(title = "test"),
                    dashboardSidebar(
                      sidebarMenu(
                        menuItem("Complete", tabName = "comp"))),
                    dashboardBody(useShinyjs(),
                      tabItems(
                        tabItem(tabName = "comp",
                                  fluidRow(
                                    box(title = "data", width = 12, solidHeader = TRUE, status = "primary", 
                                        collapsible = TRUE, dataTableOutput("tbe")))))))
server <- function(input, output, session) { 
  output$tbe <- renderDataTable(mtcars)
  observe({
    runjs("
          $(document).ready(function() {
          $('#DataTables_Table_0').DataTable( {
          \"scrollY\": 200,
          \"scrollX\": true
          } );
          } );
          ")
          })
}
shinyApp(ui, server)
谢谢,SJB。
shinyjs ×10
shiny ×9
r ×8
css ×1
datatables ×1
javascript ×1
module ×1
plotly ×1
shiny-server ×1
shinybs ×1
togglebutton ×1
triggers ×1