Html 在VoltRb中将元素追加到页面
我试图通过opal浏览器将元素附加到Volt项目中的一个页面,如下所示:Html 在VoltRb中将元素追加到页面,html,ruby,opalrb,voltrb,Html,Ruby,Opalrb,Voltrb,我试图通过opal浏览器将元素附加到Volt项目中的一个页面,如下所示: if RUBY_PLATFORM == 'opal' require 'browser' $document.body << my_dom_element.to_n end # controller code below 我附加的DOM元素是完美的。它只是以下代码: document.createElement( 'myElement' ) 我假设Volt不希望我将元素附加到控制器中的页面,而不是在
if RUBY_PLATFORM == 'opal'
require 'browser'
$document.body << my_dom_element.to_n
end
# controller code below
我附加的DOM元素是完美的。它只是以下代码:
document.createElement( 'myElement' )
我假设Volt不希望我将元素附加到控制器中的页面,而不是在视图HTML文件中手动创建它。我有办法解决这个问题吗?我需要添加这个元素,以便与我正在与Volt一起使用的另一个库兼容。好的,问题是编译的.js文件加载后,您的代码就被加载了。一旦DOM就绪,您就需要运行代码。在volt中执行此操作的简单方法是在{action}\u ready方法上运行它:
module Main
class MainController < Volt::ModelController
def index_ready
# run view code here
end
end
end
主模块
类MainController
index\u ready方法将在索引视图呈现且dom就绪后调用。如何调用此代码?你能把完整的文件放在什么地方吗?我怀疑这是在DOM准备就绪之前调用的。@Ryan这是所讨论文件的完整代码:。仅供参考,这是开箱即用的
main_controller.rb
文件,正如您在要点中所看到的,我试图添加元素的页面是开箱即用的“About”页面。天哪,我想我对代码调用的位置错了。我删除了$render.call
行,得到了相同的响应,并尝试了{action}\u ready方法。我想问题一定出在别的地方。在你给出的例子中,它试图做:$document.body啊,好的。我明白你的意思。我用一种准备就绪的方法运行了整个过程,现在似乎运行得很好。谢谢!:)
module Main
class MainController < Volt::ModelController
def index_ready
# run view code here
end
end
end