我读了这article on tagQuery篇文章,想知道在一个shiny 的应用程序中有什么实际用途.
是否要以类似于shinyjs::addClass()
的方式修改服务器端的标记?
我读了这article on tagQuery篇文章,想知道在一个shiny 的应用程序中有什么实际用途.
是否要以类似于shinyjs::addClass()
的方式修改服务器端的标记?
我认为当你需要修改或提取一个文件的部分时,它最有用
作为设置,我们有一个动态生成的菜单.我们想补充一点
library(shinydashboard, warn.conflicts = FALSE)
library(htmltools)
tabs_list <- lapply(1:2, function(x) {
menuSubItem(text = paste("tab", x))
})
menu <- menuItem("test_tabs", tabs_list)
print(menu)
#> <li class="treeview">
#> <a href="#">
#> <span>test_tabs</span>
#> <i class="fa fa-angle-left pull-right" role="presentation" aria-label="angle-left icon"></i>
#> </a>
#> <ul class="treeview-menu" style="display: none;" data-expanded="test_tabs">
#> <li>
#> <a href="#">
#> <i class="fa fa-angle-double-right" role="presentation" aria-label="angle-double-right icon"></i>
#> tab 1
#> </a>
#> </li>
#> <li>
#> <a href="#">
#> <i class="fa fa-angle-double-right" role="presentation" aria-label="angle-double-right icon"></i>
#> tab 2
#> </a>
#> </li>
#> </ul>
#> </li>
以下是最初的方法:
menu_orig <- menu
menu_orig$children[[2]] <- tagAppendAttributes(menu_orig$children[[2]], id = "test_tabs")
有了tagQuery()
,这将更容易理解和更强大:
menu_tq <- tagQuery(menu)$find("ul")$addAttrs(id = "test_tabs")$allTags()
# Check that we got the same result
identical(format(menu_orig), format(menu_tq))
#> [1] TRUE