Кто-нибудь знает, как изменить цвет сообщений об ошибках только для одного выхода? - PullRequest
0 голосов
/ 07 сентября 2018

В моем приложении я хочу изменить только цвет сообщения об ошибке для одной части моего вывода. Мои сообщения об ошибках в настоящее время появляются синим цветом, потому что именно так печатается обычный вывод.

Вот текущий код цвета шрифта (он больше не работает, так как мои сообщения об ошибках теперь создаются с помощью операторов «if», а не «validate»):

tags$head(
                           tags$style(".shiny-output-error{
                                           color: black; font-style: italic;}"))

                           )
),

вот сообщения об ошибках:

  if(input$N_1     == "") {error_statement = 'Error. Fill in Sample Size for Group 1.'}
if(input$N_2     == "") {error_statement = 'Error. Fill in Sample Size for Group 2.'}
if(input$sigma_1 <= 0) {error_statement = 'Error. Standard devation 1 must be positive.'}
if(input$sigma_2 <= 0) {error_statement = 'Error. Standard deviation 2 must be positive.'}
if(input$N_1%%1  != 0) {error_statement = 'Error. Sample size 1 must be an integer.'}
if(input$N_2%%1  != 0) {error_statement = 'Error. Sample size 2 must be an integer.'}
if(input$N_1     <= 1) {error_statement = 'Error. Sample size 1 must be 1 or greater.'}
if(input$N_2     <= 1) {error_statemement = 'Error. Sample size 2 must be 1 or greater.'}

Это часть вывода, которую я хочу изменить:

if(error == 1){
    output$Power = renderText({error_statement})

  }

Я хочу, чтобы часть, которая является "заявлением об ошибке", была черным и курсивом.

Так выглядит вывод при возникновении ошибки

Именно этот цвет, потому что когда не возникает ошибка, это цвет, который должен быть на выходе. Однако, как упоминалось ранее, я хочу, чтобы он был черным и курсивом только при наличии ошибки.

Кто-нибудь знает, как это исправить?

Заранее спасибо!

1 Ответ

0 голосов
/ 07 сентября 2018

Вам необходимо обратиться к «Power». Вдохновленный этим ответом, вы можете сделать следующее:

library(shiny)

ui = bootstrapPage(
    numericInput('n', 'Number of obs', 100),
    textOutput('Power'),
    tags$head(tags$style("#Power{color: black; font-style: italic;}"
    )
    )
)

server = function(input, output) {
    output$Power <- renderText({
        if (input$n<100){
        paste("hello input is",input$n) 
        }
    })
}
# Run the application 
shinyApp(ui = ui, server = server)

Вы также можете использовать HTML:

renderText({ 
if (input$n<100){
paste("<font color=\"#FF0000\">hello input is",input$n,"</font>") })
}
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...