我试图在zend framework2中使用ajax返回自定义视图。这个视图可能会根据ajax调用中的条件动态更改。那么我如何通过zf2中的ajax返回完整视图?
答案 0 :(得分:3)
您可以通过ajax返回完整视图,方法与通过浏览器位置栏返回完整视图的方式相同。如果您只想返回html,那么只需返回一个视图模型,就像通常那样。您可能想要禁用布局,这可以通过以下方式完成:
$viewModel = new ViewModel();
$viewModel->setTerminal(true);
return $viewModel;
或者,如果要返回JSON,可以使用json视图策略,需要在module.config.php中启用它:
'strategies' => array(
'ViewJsonStrategy',
),
然后,在您的操作中,返回一个新的JsonModel
而不是ViewModel
。
答案 1 :(得分:0)
附加ViewJsonStrategy将使这个事件监听器运行,每个请求都检查动作输出中的JsonModel。
直接返回json内容可以更快更有效:
return $this->getResponse()->setContent(json_encode($your_data));
如果需要,您还可以添加标题行Content-type: application/json
行。