Sto*_*ace 1 javascript r d3.js shiny
我这样JavaScript
包括:Shinys ui.R
tags$body(tags$script(src="someJs.js"))
Run Code Online (Sandbox Code Playgroud)
在我的someJs.js
I 有一个功能
function someFunc1() {
....;
}
... some more code ...
console.log(variable1);
Run Code Online (Sandbox Code Playgroud)
位于函数console.log
之外。 soemFunc1()
当我启动应用程序并查看控制台时,我得到
console.log() 不是函数。
这是为什么?
我也加载d3
在头上tags$head(tags$script(src="d3.v3.min.js"))
。当我d3.select...
在控制台中尝试时,我也得到
d3 不是函数。
不过,我d3
在我的应用程序中使用它来进行样式设置。
Shiny
正在做什么js
。是否有一个物体可以将所有东西附着在其上?
这是一个示例,易于重现。
ui.R
library(shiny)
shinyUI(fluidPage(
tags$head(tags$script(src="https://d3js.org/d3.v3.min.js")),
tags$head(tags$script(src="test.js")),
mainPanel(
tags$div(id = "test", "test test test")
)
)
Run Code Online (Sandbox Code Playgroud)
)
server.R
library(shiny)
shinyServer(function(input, output) {
})
Run Code Online (Sandbox Code Playgroud)
在和所在www
的同一目录中创建一个文件夹,并保存一个具有以下内容的文件:server.R
ui.R
js
test.js
console.log("This will cause error")
Run Code Online (Sandbox Code Playgroud)
现在,继续打开控制台。它说
console.log() 不是一个函数
尝试在浏览器的控制台中输入d3
。它说
d3 不是函数。
console.log()
是一个 JavaScript 函数,因此您不能在 R-Shiny 中调用它并期望它在 JavaScript 中运行。您必须明确告诉 Shiny 在 JavaScript 中进行该调用。
因为这对我来说是一个相当常见的操作,所以我将它包含在包shinyjs中,你可以在R中调用该logjs()
函数,它会将输出写入javascript控制台。
例子:
shinyApp(
ui = fluidPage(
shinyjs::useShinyjs() # Set up shinyjs
),
server = function(input, output) {
shinyjs::logjs("hello")
}
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3600 次 |
最近记录: |