2017-05-05 47 views
0

有没有办法在由shinyBS创建的警报中使用MathJax?下面的尝试不能按预期工作。MathJax在一个shinyBS警报

library(shiny) 
library(shinyBS) 
shinyApp(
    ui = 
    fluidPage(
     sidebarLayout(
     sidebarPanel(textInput("num1", NULL, value = 100), 
        "divided by", textInput("num2", NULL, value = 20), 
        "equals", textOutput("exampleOutput")), 
     mainPanel(
      withMathJax(bsAlert("alert")) 
     ) 
    ) 
    ), 
    server = 
    function(input, output, session) { 
     output$exampleOutput <- renderText({ 
     num1 <- as.numeric(input$num1) 
     num2 <- as.numeric(input$num2) 

     if(num2 == 0) { 
      createAlert(session, "alert", "exampleAlert", title = "Oops", 
         content = HTML("You cannot divide by <span class='math inline'>\\(0\\)</span>.")) 
     } else { 
      closeAlert(session, "exampleAlert") 
      return(num1/num2) 
     } 

     }) 
    } 
) 

回答

0

这适用于withMathJax(bsAlert("alert"))作为OP

content = "You cannot divide by <span class='math inline'>\\(0\\)</span>.<script>if (window.MathJax) MathJax.Hub.Queue(['Typeset', MathJax.Hub]);</script>" 

奇怪,因为剧本被包含两次。