R 用JSON更新HTML用户界面

R 用JSON更新HTML用户界面,r,shiny,R,Shiny,我有一个自定义的HTML用户界面,用于我的闪亮应用程序。UI依赖于一些JSON数据。我编写了一个R脚本来创建JSON文件,它似乎工作得很好。我制作了test.json,以帮助布局UI的其余部分。当用户单击UI中的按钮时,我想运行脚本来创建一个新的JSON文件,从中创建应用程序中显示的数据。当不在闪亮的应用程序中时,为UI创建JSON和HTML/JavaScript/CSS的脚本都可以很好地工作。我已经验证了按钮是否在闪亮的应用程序中注册了点击,但它没有重新运行脚本并更新显示的UI 这是我的app

我有一个自定义的HTML用户界面,用于我的闪亮应用程序。UI依赖于一些JSON数据。我编写了一个R脚本来创建JSON文件,它似乎工作得很好。我制作了
test.json
,以帮助布局UI的其余部分。当用户单击UI中的按钮时,我想运行脚本来创建一个新的JSON文件,从中创建应用程序中显示的数据。当不在闪亮的应用程序中时,为UI创建JSON和HTML/JavaScript/CSS的脚本都可以很好地工作。我已经验证了按钮是否在闪亮的应用程序中注册了点击,但它没有重新运行脚本并更新显示的UI

这是我的
app.R
文件:

ui=htmlTemplate(
“www/index.html”,
styleInfo=includeCSS(“www/style.css”),
按钮=操作按钮(“btn”,“单击我!”),
scriptInfo=includeDescript(“www/index.js”)
)
服务器=功能(输入、输出、会话){
observeEvent(输入$btn{
消息(“单击\n”)
函数_to_change_json_here()
})
}
下面是应用程序调用
htmlTemplate()
时使用的
index.html
文件。它位于包含
app.R
的文件夹的
www/
子目录中


页面标题
{{styleInfo}}

一些内容 2019年

酒吧

{{按钮}
下面是
www/style.css

.team{
颜色:红色;
}
.标志{
高度:50px;
}
最后,
www/index.js

var jsonObj={
“r1”:[
{
“团队名称”:“斗牛犬”,
“团队种子”:1,
“徽标_链接”:https://images-na.ssl-images-amazon.com/images/I/61eSjtcXNVL._SX355_.jpg"
}
],
“r2”:[
{
“团队名称”:“野猫”,
“种子队”:16,
“徽标_链接”:https://i0.wp.com/www.stickertalk.com/wp-content/uploads/2015/11/833__68393.1440207109.1280.1280.jpg?fit=1280%2C1000&ssl=1"
}
]
};
document.getElementById(“r1-seed-1-name”).innerHTML=jsonObj.r1[0]。团队名称;
document.getElementById(“r1-seed-1-logo”).src=jsonObj.r1[0]。logo\u链接;
document.getElementById(“r1-seed-1-seed”).innerHTML=jsonObj.r1[0]。团队种子;
document.getElementById(“r1-seed-16-name”).innerHTML=jsonObj.r2[0]。团队名称;
document.getElementById(“r1-seed-16-logo”).src=jsonObj.r2[0]。logo\u链接;
document.getElementById(“r1-seed-16-seed”).innerHTML=jsonObj.r2[0]。team_seed;

HTML、CSS和JavaScript组件可以完美地工作。我在R中编写的
函数\u to\u change\u json\u here()
本身也可以很好地工作,但是单击按钮后,或者使用
会话$reload()
后,更改后的json不会显示在UI中。我确信按钮注册了点击,因为“点击”仍然在R控制台中显示。我还使用了
function_to_change_json_here()。