Html 在VoltRb中将元素追加到页面

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不希望我将元素附加到控制器中的页面,而不是在

我试图通过opal浏览器将元素附加到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