2015-09-29 71 views
0

默認情況下,SocialENgine會在每個控制器操作結束時自動呈現視圖。如果你使用佈局,它也會呈現。這對普通網頁來說很好,但是當你發送AJAX響應時,你並不需要這些。如何防止SocialEngine在逐個操作的基礎上自動呈現?有了ZendFramework,你可以這樣做:防止socialengine渲染視圖(對於AJAX)

$this->_helper->layout->disableLayout(); 
$this->_helper->viewRenderer->setNoRender(TRUE); 

而且你有機會獲得一些不錯的幫手,如:

$this->_helper->json($data); 

...這將json_encode你的$的數據,使用JSON頭輸出,並在死亡最後,所以從操作返回的乾淨的JSON沒有視圖渲染,這幾乎就是我想要的。

但是這些解決方案都不能在SocialEngine中工作 - $ this - > _ helper總是像$ this-> view - > _ helper一樣是一個空數組。並返回$ this-> setNoRender()只會阻止當前元素的渲染,而不是整個頁面。

回答

1

在一些默認控件,我發現這個函數調用,它完全抑制小部件的渲染:

return $this->setNoRender(); 

它在實施Engine_Content_Widget_Abstract如果你有興趣。

Best, Benni。