【发布时间】:2011-08-17 09:29:18
【问题描述】:
- 如何在 haml 的 javascript 中运行 ruby 代码?
- 如果我在示例中使用
var = #{message},我会得到undefined local variable or method message - 当我将
- message = 'it works'移动到:javascript上方时,一切正常
我想在:javascript 内运行迭代 .each。请参阅最后一个代码示例,了解我在最终 javascript 代码中需要的内容。我需要循环几个 ruby 变量(或一个哈希的哈希?)来得到这个。数据(='basics')可以有很少的元素。它可以有元素很少的孩子等。
所以这个haml代码
%html
%head
:javascript
$(document).ready(function() {
- message = 'it works'
var = message
});
%body
- message2 = 'hi'
= message2
%div{:id =>"jstree"}
给我这个 html 代码
<html>
<head>
<script type='text/javascript'>
//<![CDATA[
$(document).ready(function() {
- message = 'hi'
var = message
});
//]]>
</script>
</head>
<body>
hi
<div id='jstree'></div>
</body>
</html>
我想使用 haml 生成的最终 javascript 代码是 javascript 变量
var data = [{
data: "basics",
attr: {},
children: [
{data: "login", attr: {run: "run"},
children: [
{data: "login", attr: {}}
]
} ,
{data: "Academic Year", attr: {run: "run"},
children: [
{data: "login", attr: {}},
{data: "Academic Year", attr: {filter: "mini", SOF: "yes"}}
]
}
]
}];
【问题讨论】:
-
这个问题不好理解。你说你想运行
each,但你没有说明在哪里或如何运行。我不确定在您的脚本块之前设置message变量与您的问题有什么关系。 你有哪些 Ruby 变量,你想要什么作为输出?