首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ExecJS上下文中的Jade

ExecJS上下文中的Jade
EN

Stack Overflow用户
提问于 2012-09-22 00:19:56
回答 1查看 254关注 0票数 0

很简单,我在运行execjs中的jade-lang文件编译的jade.js时遇到了问题。

如果我在html文件中包含jade.js

代码语言:javascript
复制
jade.compile

返回一个函数。

当我执行以下操作时:

代码语言:javascript
复制
require 'execjs'

source  = <<-src
  var window = {};
  #{open('jade.js').read}
  var jade = window.jade;
src
context = ExecJS.compile source
context.eval "jade.compile"
 => nil

eval返回nil。

你知道我哪里错了吗?我已经搜索了堆栈溢出,甚至找到了几个gem,它们的工作方式与我一样,但当我在我的系统上执行时,它不起作用。我尝试使用therubyracer和node作为我的execjs运行时。

谢谢你的帮忙!

EN

回答 1

Stack Overflow用户

发布于 2012-09-22 01:27:12

当从execjs返回的是一个函数时,它似乎返回nil。所以:

代码语言:javascript
复制
context.eval "jade.compile.toString()"
=> "function....."

Likewile

代码语言:javascript
复制
context.eval "jade.compile(#{template.to_json}).toString()"
=> "function...."

代码语言:javascript
复制
context.eval "jade.compile(#{template.to_json})()"
=> "some html"

这是有意义的,因为execjs/external_runtime.rb的extract_result方法(在编写本文时是第62行)使用JSON.decode,它不会对函数进行解码。仅为object的导数。

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

https://stackoverflow.com/questions/12534308

复制
相关文章

相似问题

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