在cakephp中的ajax渲染视图上加载ajax

时间:2012-07-16 07:16:36

标签: cakephp

我在我的cakephp应用程序中通过js helper使用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或其他方法来做。

1 个答案:

答案 0 :(得分: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();?>