Zend Framework 2: Désactiver la mise en page pour les appels ajax

Une requête AJAX à l'un de mes actions de contrôleur actuellement renvoie à la page HTML.

Je ne le veux de retour le HTML (.phtml contenu) pour cette action spécifique.

Le code suivant mal résout le problème manuellement désactiver la mise en page pour l'action:

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

Comment puis-je faire ma demande de désactiver automatiquement la mise en page lorsqu'une requête AJAX est-il détecté? Dois-je écrire une stratégie personnalisée pour cela? Des conseils sur la façon de le faire est très apprécié.

De plus, j'ai essayé le code suivant dans mon application Module.php - c'est la détection AJAX correctement, mais le setTerminal() n'est pas la désactivation de la mise en page.

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);
    }
}

Pensées?

source d'informationauteur Daniel Sposito