【问题标题】:shinyBS modal not working with Shiny Server PROShinyBS 模态不适用于 Shiny Server PRO
【发布时间】:2019-05-26 16:11:46
【问题描述】:

我有以下示例应用程序,它显示了带有数据表输出的模式。

这在 RStudio 中工作,在任何浏览器中本地工作,在带有 Shiny Server(免费版)的 EC2 Linux 实例上工作。但是,不适用于 Shiny Server PRO。关于限制的任何想法?我尝试了所有我知道的方式进行调试,但没有发现问题。

library(shiny)
library(DT)
library(shinyBS)
library(dplyr)

mtcarsSummary <- mtcars %>%
  group_by(am) %>%
  summarise(numCars = n())

makeSummaryLinked <- function(df, linkName1, modalName1)
{
  on_click_js1 = paste(
    'Shiny.onInputChange(&#39;', linkName1, '&#39;, &#39;%s&#39;); $(&#39;',
    modalName1, '&#39;).modal(&#39;show&#39;)', sep = ''
    )

  dfLinked <- df
  tagList1 <- tags$a(
    href = "#",
    onclick = sprintf(on_click_js1, df$am),
    df$am
    )
  tagList1 <- data.frame(V1 = tagList1$attribs$onclick, V2 = tagList1$children)
  colnames(tagList1) <- c('V1', 'V2')

  dfLinked$am_linked <- paste(
    '<a href="#" onclick="', tagList1$V1, '">', tagList1$V2, '</a>', sep = ''
    )

  dfLinked <- select(
    dfLinked, am_linked, everything()
    )

  return(dfLinked)
  }

mtcarsLinked <- makeSummaryLinked(mtcarsSummary, 'myAm', paste0('#', 'amModal'))

ui <- fluidPage(
    fluidRow(
      mainPanel(
        DT::dataTableOutput('myData'),
        bsModal(
          id = 'amModal',
          title = 'What is this?',
          trigger = '',
          size = 'large',
          mainPanel(
            DT::dataTableOutput('amData'),
            width = 12
            )
          ),
          width = 12
        )
      )
    )

server <- function(input, output, session) {
  amData <- reactive({
    mtcars %>% filter(am == input$myAm)
    })
  output$myData <- DT::renderDataTable({
    mtcarsLinked %>%
      DT::datatable(
        escape = FALSE, class = 'compact', rownames = '', filter = 'none',
        options = list(dom = 'Bfrtrip')
        )
    })
  output$amData <- DT::renderDataTable({
    amData() %>%
      DT::datatable(
        escape = FALSE, class = 'compact', rownames = '', filter = 'none'
        )
    })
  }

shinyApp(ui, server)

其他闪亮的东西都可以正常工作。 R 工作正常。所有软件包均已正确安装。

version
               _
platform       x86_64-pc-linux-gnu
arch           x86_64
os             linux-gnu
system         x86_64, linux-gnu
status
major          3
minor          4.1
year           2017
month          06
day            30
svn rev        72865
language       R
version.string R version 3.4.1 (2017-06-30)
nickname       Single Candle

包版本如下:

packageVersion('shiny')
[1] ‘1.2.0’
packageVersion('DT')
[1] ‘0.5’
packageVersion('shinyBS')
[1] ‘0.61’
packageVersion('dplyr')
[1] ‘0.7.8’

【问题讨论】:

    标签: r shiny shiny-server shinybs


    【解决方案1】:

    我敢打赌这是 Shiny Server 使用了&lt;base&gt; 标签,它与# 等相对href 混淆了。如果您单击该链接,它可能会将您导航到 /_w_ad877768/# 之类的地方。您可以通过使用href="javascript:void(0)" 而不是href="#" 或在锚点的点击处理程序中添加event.preventDefault() 来阻止导航。

    【讨论】:

    • 那行得通。有趣的是 PRO 服务器的行为不同。
    猜你喜欢
    • 2020-05-15
    • 2018-04-30
    • 2016-07-31
    • 2021-11-09
    • 2018-11-26
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多