如何在zend-framework2中设置自定义视图

如何在zend-framework2中设置自定义视图,zend-framework,zend-framework2,Zend Framework,Zend Framework2,我试图在zend framework2中使用ajax返回自定义视图。此视图可以根据ajax调用中的条件动态更改。。那么如何在zf2中通过ajax返回完整视图呢?您可以通过ajax返回完整视图,方法与通过浏览器位置栏返回完整视图相同。如果您只想返回html,那么只需以通常的方式返回视图模型即可。您可能希望禁用布局,可以通过以下方式完成: $viewModel = new ViewModel(); $viewModel->setTerminal(true); return $viewModel

我试图在zend framework2中使用ajax返回自定义视图。此视图可以根据ajax调用中的条件动态更改。。那么如何在zf2中通过ajax返回完整视图呢?

您可以通过ajax返回完整视图,方法与通过浏览器位置栏返回完整视图相同。如果您只想返回html,那么只需以通常的方式返回视图模型即可。您可能希望禁用布局,可以通过以下方式完成:

$viewModel = new ViewModel();
$viewModel->setTerminal(true);
return $viewModel;
或者,如果要返回JSON,可以使用JSON视图策略,需要在module.config.php中启用该策略:

'strategies' => array(
    'ViewJsonStrategy',
), 

然后,在您的操作中,返回一个新的
JsonModel
,而不是
ViewModel

,您可以通过ajax返回完整视图,就像通过浏览器位置栏返回完整视图一样。如果您只想返回html,那么只需以通常的方式返回视图模型即可。您可能希望禁用布局,可以通过以下方式完成:

$viewModel = new ViewModel();
$viewModel->setTerminal(true);
return $viewModel;
或者,如果要返回JSON,可以使用JSON视图策略,需要在module.config.php中启用该策略:

'strategies' => array(
    'ViewJsonStrategy',
), 

然后,在您的操作中,返回一个新的
JsonModel
,而不是
ViewModel

附加ViewJsonStrategy将使此事件侦听器在每次请求检查操作输出中的JsonModel时运行

直接返回json内容可以更快、更高效:

return $this->getResponse()->setContent(json_encode($your_data));

如果需要,您还可以将标题行添加到
内容类型:application/json
行。

附加ViewJsonStrategy将使此事件侦听器在每次请求检查操作输出中的JsonModel时运行

直接返回json内容可以更快、更高效:

return $this->getResponse()->setContent(json_encode($your_data));
如果需要,还可以将标题行添加到
内容类型:application/json