2014-06-04 19 views
22

Tôi đang sử dụng mã bên dưới trong server.R để hiển thị văn bản trong bảng điều khiển chính. Điều này hoạt động chính xác theo cách nó sẽ hoạt động.Thay đổi màu và phông chữ của văn bản trong Ứng dụng sáng bóng

output$text1 <- renderText({ 
    if(input$ag == 0) return(NULL) 
    return('First 20 rows for requested AG') 
}) 

Có cách nào để thay đổi phông chữ và màu sắc của văn bản không?

+0

AFAIK renderText chỉ xuất kết quả văn bản như mèo. Bạn có thể cần phải sử dụng CSS để thay đổi kiểu văn bản. Xem ở đây để thảo luận về Google Groups (tôi nghĩ) bao gồm vấn đề của bạn. – jbaums

+1

Chỉ cần nhận ra tôi đã không cung cấp url:/[ở đây là] (https://groups.google.com/forum/#!topic/shiny-discuss/xWyaOryOkVs) (và trong nháy mắt thứ hai nó có thể không có trong ngữ cảnh 'renderText'). – jbaums

Trả lời

23

Bạn có thể sử dụng css như @jbaums chỉ

library(shiny) 
runApp(list(
    ui = bootstrapPage(
    numericInput('n', 'Number of obs', 100), 
    textOutput('text1'), 
    tags$head(tags$style("#text1{color: red; 
           font-size: 20px; 
           font-style: italic; 
           }" 
         ) 
      ) 
), 
    server = function(input, output) { 
    output$text1 <- renderText({ paste("hello input is",input$n) }) 
    } 
)) 

Thông thường bạn sẽ bao gồm này trong một file styles.css nhưng nó được hiển thị inline vào đây để được khép kín. #text1 đề cập đến phần tử DOM có id=text1 và nội dung của dấu ngoặc nhọn là các kiểu có liên quan.

22

Nếu chỉ muốn thay đổi một phần nhất định của chuỗi trở về, người ta có thể sử dụng htmlOutput thay vì textOutput

Về phía máy chủ chỉ trả

output$text1 <- renderText({ paste("hello input is","<font color=\"#FF0000\"><b>", input$n, "</b></font>") }) 

Bằng cách này, Shiny UI sẽ biểu diễn HTML.

+1

nó phải là 'htmlOutput' – martin

14

trong ui.r:

span(textOuput("message"), style="color:red") 

trong server.r:

output$message <- renderText({"This is some red text"}) 
1

Giải pháp bởi @MikeP cũng làm việc với p(), fx p("some text", style = "color:red), vì vậy bạn cũng có thể chỉ cần quấn rằng trong một renderText() từ máy chủ nếu bạn muốn hiển thị nó động.

Các vấn đề liên quan