2015-09-29 44 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。