我正在渲染一个包含很多帧的页面(通过 dojo 的 XHR 内容窗格)。这是通过IndexController
设置区域“header,left,right,center,footer”的请求来完成的,但该中心没有填充内容。这又是通过调用PaneController
menu.onclick 来设置的。警告; 搜索引擎索引服务没有获取中心区域内容。如果用户通过/index/index 进入,我希望绕过中心的 AJAX 加载。
来自 IndexController 的相关片段:
class IndexController extends Zend_Controller_Action {
public function indexAction() {
$this->indexModel = $this->view->indexModel = new Application_Model_Index();
// Goal is to render "/pane/main/" action and capture the HTML
$this->view->mainPane = (string) $this->renderPaneMain();
return $this->render();
}
public function renderPaneMain() {
// ActionStack ?
// action() ?
return $HTML;
}
}
窗格中的相关内容
class PaneController extends Zend_Controller_Action {
public function preDispatch() {
// will only return a contentpane, dont render layout
if ($this->getRequest()->isXmlHttpRequest()) {
$this->_helper->layout()->disableLayout();
$this->view->doLayout = true;
}
}
public function mainAction() {
this.render("main.phtml");
}
public function init() {
$this->panesModel = new Application_Model_Panes();
$variant = $this->getRequest()->getParam('variant', '');
// routing variables need to be set, how?
if (empty($variant))
$this->_redirect('/');
}
}
基本上,我需要 PaneController _not 渲染全局布局,而是调用它的 .phtml 视图文件,一旦它已经设置了相关的模型条目等。
关于如何以最有效的形式实现这一目标的任何想法?