2012-07-16 116 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