我在我的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或其他方法来做。
答案 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();?>