2014-09-16 3 views
1

Dans zend framework 2, j'ai la configuration ci-dessous module.config.php:vue ZF2 en utilisant le modèle JSON

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

Et mon contrôleur est:

use Zend\View\Model\JsonModel; 
$view = new JsonModel(array(
      'username' => ucfirst($username), 
      'datarr' => array(

       'a' => 'A', 
       'b' => 'B', 
       'c' => 'C', 
       'd' => 'D', 

      ), 
     )); 

à mon avis simplement obtenir:

{ "username" : "Reynold", "datarr" : {"a":"A", "b":"B", "c":"C", "d":"D" } } 

Quand je me sers $view = new ViewModel();, je reçois à droite, et en utilisant le JsonModel je suis obtenir le dessus, quelqu'un peut-il m'aider à découvrir ce que j'ai fait de mal?

Répondre

0

Rien ne va pas avec ceci. Le JsonModel est utilisé pour les requêtes ajax, tandis que le ViewModel est utilisé pour les requêtes http normales.

Vous pouvez utiliser la réponse de JsonModel en tant qu'objet JavaScript. Voici un exemple avec jquery:

$.ajax({ 
    url: yourUrl, 
    success: function(d) { 
     console.log(d.username); 
     console.log(d.datarr.a); 
    } 
}); 

Dans votre contrôleur, vous pouvez vérifier si elle est un ajax-demande comme ceci:

if($this->getRequest()->isXmlHttpRequest()) { 
    // return json-model 
} 
Questions connexes