- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
如果我有一个 javascript 对象,我通常会像这样与该对象及其方法进行交互:
var obj = someObject.getInstance();
var result = obj.someMethod();
someMethod 的定义如下:
someObject.prototype.someOtherMethod = function() { //do stuff };
someObject.prototype.someMethod = function(foo) { this.someOtherMethod(); };
但是,当我想通过 ExecJS 在 Ruby 中调用 someMethod 时出现错误:
context = ExecJS.compile(# the javascript file)
context.call('someObject.getInstance().someMethod')
# Gives a TypeError where Object has no method 'someOtherMethod'
另一方面,javascript 模块中定义的函数工作正常:
someFunction = function() { // do stuff };
# in Ruby
context.call('someFunction') # does stuff
ExecJS 可以处理 Javascript 对象及其方法,还是我只能用它调用函数?
关于具体的应用,我正在研究https://github.com/joenoon/libphonenumber-execjs , 但由于上述原因,Libphonenumber 中的解析函数不起作用。
最佳答案
通过一些实验找到了答案。我设法通过使用 context.exec() 而不是调用来获得所需的功能。
js = <<JS
var jsObj = someObject.getInstance();
var res = jsObj.someMethod();
return res;
JS
context.exec(js);
但是,如果您的方法返回一个 Javascript 对象,您必须先将其序列化或以其他方式解析结果,以便 ExecJS 可以将其返回到合适的 Ruby 对象中。
关于javascript - ExecJS - Ruby 中的 Javascript 对象实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13967576/
我在生产服务器上预编译时遇到错误;但是,如果我将环境设置为生产并在开发计算机上运行预编译,则运行正常。这怎么可能? RAILS_ENV="production" bundle exec rake as
我是 ruby 和 rails 的新手,并且在教程中行走(爬行?)。第二个项目使用脚手架创建一个由姓名和电子邮件地址组成的用户。当我尝试查看用户屏幕时,我得到以下信息: ExecJS::Runti
我收到此错误: rake aborted! Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs
自从 Dreamhost 几周前升级了他们的服务器后,我的网站就出现了故障。我一直在竭尽全力试图修复它并取得了一些进展,但我仍然停留在希望是最后一期的问题上。 我在 Ruby 1.8.7 上使用 Ra
我已经在 ubuntu 12.04 服务器上安装了 nodejs,我想知道为什么我在编译 Assets 时遇到问题,当我转到控制台 rails c 我运行这个 ExecJS::Runtimes.bes
我正在使用 Ruby,但在删除 gem 时遇到问题。 gem 是execjs。这是一些背景信息。 rvm use @global rvm gem list Outputs... *** LOCAL G
我需要在我的 Rails 4 应用程序中执行一个 javascript 函数。我用 ExecJS ( https://github.com/sstephenson/execjs ) 尝试了以下但没有成
你好,我在 Demo#index 中遇到 ExecJS::RuntimeError 下面是突出显示的第 6 行,下面是我的完整轨迹。有人可以 A: 给我指出正确的方向来调试这个以及调试 rails 的
我的项目运行良好,我正在调整使用 Chartkick 制作的图表并使用 ActionCable 更新 HTML 徽章,突然出现此错误: Pages#create_session 中的 ExecJS::
这让我一整天都快要死了。我有一个 Rails 应用程序,我正在从 3.2 升级到 4.0.13,它在开发中运行良好。在 Rails 4 的测试中,我得到 ExecJS::ProgramError: R
我正在尝试部署到 Heroku,但遇到了此错误。我做了一些研究,并在查看相关帖子后尝试卸载并重新安装一些 gem,但我不太确定这里出了什么问题,因为我不熟悉实际问题是什么。请帮忙!我应该怎么办?到目前
我正在学习 CareerFoundry 的 Web 开发类(class),但遇到了收到“预编译资源失败”消息的问题。这是尝试将我的文件上传到 heroku 时出现的原始错误消息 ExecJS:
错误页面: 这是 application.html.erb 文件: YoutupediaBlog true %> true %> 这两天我一直在寻找这个问题的解决
我遇到的问题: 这是我的 room.coffee 文件,一切正常。 jQuery(document).on 'turbolinks:load', -> messages = $('#message
我有一个 RoR (4.1) 应用程序,我正在尝试使用 Passenger & Nginx 运行它。我想在我的 CI 服务器 (jenkins) 上进行 bundle ,但是当我复制文件时,我遇到了可
我在 RHEL 6 机器上安装了一个 Rails 4 应用程序。 产品使用 Passenger 和 Apache2。 最近我一直在尝试使用 Whenever Gem 和 Cron 将 Rake 任务作
rake assets:precompile 为我的 rails 项目抛出以下错误: rake aborted! Current ExecJS runtime does't support ES6.
在我现有的项目中我改变了 gem "twitter-bootstrap-rails" 到 gem 'bootstrap', '~> 4.1.3' 在我的 Gemfile 中。我现在得到 uniniti
如果我有一个 javascript 对象,我通常会像这样与该对象及其方法进行交互: var obj = someObject.getInstance(); var result = obj.someM
在我们的rails rfq.js.coffee中,只有一段简单的js代码: $(function() { $('#need_report').change(function(){ if (
我是一名优秀的程序员,十分优秀!