我试图通过opal浏览器将一个元素添加到Volt项目中的一个页面中,如下所示:
if RUBY_PLATFORM == 'opal'
require 'browser'
$document.body << my_dom_element.to_n
end
# controller code below不幸的是,我收到了一个错误:
[Error] TypeError: null is not an object (evaluating 'value.nodeType')
(anonymous function) (main.js, line 7772)我所附加的DOM元素非常健全。它只是以下代码:
document.createElement( 'myElement' )我假设Volt不希望我将元素添加到控制器中的页面中,而不是在视图HTML文件中手动创建它。我有办法解决这个问题吗?我有点需要做这个元素-为了与我正在使用的与Volt一起使用的另一个库的兼容性而附加的东西。
发布于 2015-06-23 03:43:52
好的,所以问题是,一旦编译的.js文件加载,您所拥有的代码就会被加载。一旦DOM准备就绪,您就需要运行代码。在volt中这样做的简单方法是在{action}_ready方法上运行它:
module Main
class MainController < Volt::ModelController
def index_ready
# run view code here
end
end
endindex_ready方法将在呈现索引视图并已准备就绪之后调用。
https://stackoverflow.com/questions/30990453
复制相似问题