在我的Rails 3中,ajax脚手架我在ajax上有一个钩子:success,它接受在调用实体的数据加载属性中定义的任何代码(a,form等),并使用jQuery.globalEval执行它。我想访问钩子中的局部变量,例如返回的数据,但是如果我使用...
alert( data )
...在加载的参数中,它给了我一个未引用的变量错误,即使该参数在钩子参数中。
知道如何在不改变脚手架的情况下使用数据变量吗?改变脚手架并不难,但不必去做!
我正在谈论的最简单的一个例子:
function testMe( data )
{
jQuery.globalEval( 'alert( data );' );
}
此代码告诉我数据未定义,如何将数据传递给globalEval是我的问题。
答案 0 :(得分:1)
globalEval全局评估代码,因此忽略了范围。由于数据是testMe中的变量,而不是全局范围,因此它实际上是未定义的。你可以这样做:
var testMeData;
function testMe( data )
{
testMeData = data
jQuery.globalEval( 'alert( testMeData );' );
}
这将输出你想要的。但我不明白你为什么要这样做。