2

Cakephp アプリケーションで js ヘルパー経由で ajax を使用しています。このために、次のコードを使用しています。

echo $this->Js->link('test','/controller/test/', array('before'=>$this->Js->get('#loading')->effect('fadeIn'),'success'=>$this->Js->get('#loading')->effect('fadeOut'),'update'=>'#mydiv'));

正常に動作しています。しかし、ajaxによってレンダリングされたビューページでこのコードを使用していると、機能しません。ページのソースを確認すると、このビューのスクリプトがバッファリングされたスクリプトに追加されていないことがわかりました。ページの読み込み時にバッファリングされたスクリプトが作成されると思います。私の場合、ページが読み込まれると特定のコンテンツが読み込まれないため、このレイアウトのスクリプトはバッファリングされたスクリプトに追加されません。

これを行うことができる他の方法があるか、カスタムjqueryまたは別の方法で行う必要があるか教えてください。

4

1 に答える 1

3

Ajax リンクで evalScripts オプションを使用する必要があります。コードは次のとおりです。

echo $this->Js->link('test','/controller/test/', array('before'=>$this->Js->get('#loading')->effect('fadeIn'),'success'=>$this->Js->get('#loading')->effect('fadeOut'),'update'=>'#mydiv', 'evalScripts' => true));

そして、Ajax ビュー ファイルの下部にあります。以下を必ず含めてください。

<?php echo $this->Js->writeBuffer();?>
于 2012-07-16T08:24:58.043 に答える