首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将元素追加到VoltRb中的页中

将元素追加到VoltRb中的页中
EN

Stack Overflow用户
提问于 2015-06-22 21:50:46
回答 1查看 115关注 0票数 1

我试图通过opal浏览器将一个元素添加到Volt项目中的一个页面中,如下所示:

代码语言:javascript
复制
if RUBY_PLATFORM == 'opal'
  require 'browser'
  $document.body << my_dom_element.to_n
end
# controller code below

不幸的是,我收到了一个错误:

代码语言:javascript
复制
[Error] TypeError: null is not an object (evaluating 'value.nodeType')
    (anonymous function) (main.js, line 7772)

我所附加的DOM元素非常健全。它只是以下代码:

代码语言:javascript
复制
document.createElement( 'myElement' )

我假设Volt不希望我将元素添加到控制器中的页面中,而不是在视图HTML文件中手动创建它。我有办法解决这个问题吗?我有点需要做这个元素-为了与我正在使用的与Volt一起使用的另一个库的兼容性而附加的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-23 03:43:52

好的,所以问题是,一旦编译的.js文件加载,您所拥有的代码就会被加载。一旦DOM准备就绪,您就需要运行代码。在volt中这样做的简单方法是在{action}_ready方法上运行它:

代码语言:javascript
复制
module Main
  class MainController < Volt::ModelController
    def index_ready
      # run view code here
    end
  end
end

index_ready方法将在呈现索引视图并已准备就绪之后调用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30990453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档