【问题标题】:Why is text appearing in my shiny app when using html tags and bootstrap使用 html 标签和引导程序时,为什么文本会出现在我闪亮的应用程序中
【发布时间】:2019-05-09 15:46:42
【问题描述】:

以下是我的错误的一个最小示例:

library(shiny)

run_with_enter <- '
$(function() {
var $els = $("[data-proxy-click]");
$.each(
$els,
function(idx, el) {
var $el = $(el);
var $proxy = $("#" + $el.data("proxyClick"));
$el.keydown(function (e) {
if (e.keyCode == 13) {
$proxy.click();
}
});
}
);
});
'

ui1 <- function(){
  tagList(
    div(id = "login",
        fluidPage(
          textInput("uid", "Username"),
          tagAppendAttributes(
            passwordInput("pwd", "Password"),
            `data-proxy-click` = "Login"
          ),
          br(),
          actionButton("Login", "Log in", class = "btn-success"),
          htmlOutput("login_attempt")
          )),
    tags$style(type="text/css", "#login {font-size:10px;   text-align: left;position:absolute;top: 40%;left: 50%;margin-top: -100px;margin-left: -150px;}")
  )}

ui = (htmlOutput("page"))




server <- function(input, output, session) {

  observeEvent(input$Login, {
    cat("Login attempted \n")
  })

  output$page <- renderUI({
    div(class="outer",do.call(bootstrapPage,c(tags$br(tags$script(HTML(run_with_enter))),ui1())))
  })

}

shinyApp(ui, server)

当应用程序运行时,左上角会出现文本“br”,但其他一切似乎都正常运行。我已将问题归结为代码 sn-p: tags$br(tags$script(HTML(run_with_enter))

但我不确定如何解决这个问题。我可以将“br”标签更改为任何有效的 HTML 标签(例如“head”),左上角的文本将替换为新标签。

【问题讨论】:

    标签: javascript r shiny bootstrap-4 shinyjs


    【解决方案1】:

    而不是

    c(tags$br(tags$script(HTML(run_with_enter))), ui1())
    

    你应该有

    list(tags$br(tags$script(HTML(run_with_enter))), ui1())
    

    c() 函数从对象中剥离属性,这在本例中不是您想要的。比较tags$br()c(tags$br())

    【讨论】:

    • 太好了,谢谢。我知道c() 不知道为什么我没看到!
    猜你喜欢
    • 2013-09-28
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    相关资源
    最近更新 更多