Shiny拥有带{{ }}
语法的html模板来嵌入r代码:
<ul>
<li>{{ SHINY_VARIABLE }}</li>
<li>{{ SHINY_VARIABLE2 }}</li>
</ul>
然而,其他Web框架可以与html结合使用服务器变量。来自Django
文档的基本示例:
<ul>
{% for athlete in athlete_list %}
<li>{{ athlete.name }}</li>
{% endfor %}
</ul>
这在.html文件中的标记非常易读。 shiny
可以这样做:
library(shiny)
athlete_list <- c('Lebron', 'Serena', 'Michael')
li_vec <- paste0('<li>', athlete_list, '</li>')
li_text <- paste(li_vec, collapse = '')
ul_text <- paste0('<ul>', li_text, '</ul>')
HTML(ul_text)
Yuck ......当你嵌套其他元素时会变得更加丑陋。谁有更好的方法?
答案 0 :(得分:0)
这更接近,仍然不是很好......
# Function to process looped over html + variable
rHtml <- function(html) {
html <- paste(html, collapse = '')
HTML(html)
}
# Server variable
athlete_list <- c('Lebron', 'Serena', 'Michael')
在您的html模板中:
<ul>
{{
rHtml(sapply(athlete_list, function(x) {paste(
'<li>', x, '</li>\n'
)}))
}}
</ul>