Parser JSON et afficher les données dans Angulaire
J'ai un soucis avec l'affichage des données JSON dans Angulaire. J'ai réussi à envoyer des données à partir backend à frontend (Angulaire), mais je ne peux pas les afficher.
J'ai essayé de simuler une situation similaire sur JSFiddle, bien que j'ai déjà préparé les données de backend
get/envoyer des données -> Backend côté:
//push data to Redis
var messages= JSON.stringify(
[
{
"name": "Msg1",
"desc": "desc Msg1"
},
{
"name": "Msg2",
"desc": "desc Msg2"
},
{
"name": "Msg3",
"desc": "desc Msg3"
},
{
"name": "Msg4",
"desc": "desc Msg4"
}
]);
redisClient.lpush('list', messages, function (err, response) {
console.log(response);
});
//get from redis and send to frontend
app.get('/messages', function(req, res){
//Query your redis dataset here
redisClient.lrange('list', 0, -1, function(err, messages) {
console.log(messages);
//Handle errors if they occur
if(err) res.status(500).end();
//You could send a string
res.send(messages);
//or json
//res.json({ data: reply.toString() });
});
});
obtenir des données -> frontend (Angulaire)
angular.module('app')
.controller('MainCtrl', ['$scope', '$http', function ($scope, $http) {
'use strict';
getFromServer();
function getFromServer(){
$http.get('/messages')
.success(function(res){
$scope.messages= res;
console.log(res);
});
}
}])
Partie HTML avec ng-repeat directive:
<div ng-app="app" ng-controller="MainCtrl" class="list-group">
<div class="list-group-item" ng-repeat="item in messages">
<h4 class="list-group-item-heading">{{item.name}}</h4>
<p class="list-group-item-text">{{item.desc}}</p>
<div>
</div>
Serait ce que quelqu'un sait quel est le problème?
Essayez d'utiliser $champ d'application.messages = JSON.parse(res);
Pouvez-vous partager la totalité de votre HTML (index.html ou de quoi que ce soit)?
Votre réponse semble être un tableau de chaînes par les regards de la sortie de la console. @Dodekeract a la bonne réponse, vous avez juste à faire res[0].
Pouvez-vous partager la totalité de votre HTML (index.html ou de quoi que ce soit)?
Votre réponse semble être un tableau de chaînes par les regards de la sortie de la console. @Dodekeract a la bonne réponse, vous avez juste à faire res[0].
OriginalL'auteur corry | 2015-07-14
Vous devez vous connecter pour publier un commentaire.
Aussi loin que je peux voir, vous êtes le stockage de votre Objet en JSON, mais vous n'avez jamais l'analyser. Par conséquent l'utilisation de
au lieu de
devrait résoudre votre problème.
Ici est un travail JSFiddle version de la vôtre: https://jsfiddle.net/29y61wtg/5/
Noter, que ce n'inclut pas de $http appel, si vous rencontrez toujours des problèmes après l'utilisation de $http, dites-moi dans les commentaires.
Vous devriez ouvrir une nouvelle question. Je suis probablement le seul utilisateur qui verront ce commentaire pour un certain temps.
OriginalL'auteur Dodekeract