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 に答える