Zend Framework 2: автоматическое отключение макета для вызовов ajax

AJAX-запрос к одному из моих действий контроллера в настоящее время возвращает HTML-код полной страницы.

Я только хочу, чтобы он возвращал HTML (содержимое .phtml) для этого конкретного действия.

Следующий код плохо решает проблему, вручную отключая макет для определенного действия:

    $viewModel = new ViewModel();
    $viewModel->setTerminal(true);
    return $viewModel;

Как я могу заставить мое приложение автоматически отключать макет при обнаружении AJAX-запроса? Мне нужно написать собственную стратегию для этого? Любые советы о том, как это сделать, очень ценятся.

Кроме того, я попробовал следующий код в своем приложении Module.php - он правильно определяет AJAX, но setTerminal () не отключает макет.

public function onBootstrap(EventInterface $e)
{
    $application = $e->getApplication();
    $application->getEventManager()->attach('route', array($this, 'setLayout'), 100);

    $this->setApplication($application);

    $this->initPhpSettings($e);
    $this->initSession($e);
    $this->initTranslator($e);
    $this->initAppDi($e);
}

public function setLayout(EventInterface $e)
{
    $request = $e->getRequest();
    $server  = $request->getServer();

    if ($request->isXmlHttpRequest()) {
        $view_model = $e->getViewModel();
        $view_model->setTerminal(true);
    }
}

Мысли?

Ответы на вопрос(5)

Ваш ответ на вопрос