2012-07-16 90 views
2

我在cakephp应用程序中通过js helper使用ajax; 为此,我正在使用以下代码。在cakephp的ajax呈现视图中加载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或其他方法来做到这一点。

回答

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();?> 
+0

非常感谢亲爱的。它现在工作.. – mjdevloper 2012-07-16 08:29:35