0

在我的 Rails 3 ajax 脚手架中,我有一个 ajax:success 钩子,它采用调用实体(a、表单等)的数据加载属性中定义的任何代码,并使用 jQuery.globalEval 执行它。我想访问钩子中的局部变量,例如返回的数据,但是如果我使用...

alert( data )

...在加载的参数中,即使该参数在钩子参数中,它也会给我一个未引用的变量错误。

知道如何在不更改脚手架的情况下使用数据变量吗?更换脚手架并不难,但不必这样做就好了!

我以最简单的形式谈论的一个例子:

function testMe( data )
{
    jQuery.globalEval( 'alert( data );' );
}

这段代码告诉我数据未定义,如何将数据传递给 globalEval 是我的问题。

4

1 回答 1

1

globalEval 全局评估代码,因此它忽略范围。由于 data 是 testMe 内部的一个变量,而不是在全局范围内,它实际上是未定义的。你可以这样做:

var testMeData;
function testMe( data )
{
   testMeData = data
   jQuery.globalEval( 'alert( testMeData );' );
}

这将输出你想要的。但我不明白你为什么要这样做。

于 2012-06-24T18:16:00.703 回答