Ho due servizi web:AngularJS conciliano risposte del servizio web
si ritorna "Articoli" come questo:
[
{
"id": "1",
"headline": "some text",
"body": "some text",
"authorId": "2"
},
{
"id": "2",
"headline": "some text",
"body": "some text",
"authorId": "1"
}
]
e l'altro restituisce un "autore" come questo, dato un id:
{
"id": "1",
"name": "Test Name",
"email": "[email protected]",
"photo": "path/to/img"
}
Desidero combinare i due, in modo da poter visualizzare il nome e la foto degli autori in un elenco di panoramica degli articoli.
Ti piace questa:
[
{
"id": "1",
"headline": "some text",
"body": "some text",
"authorId": "2",
"author_info": {
"id": "2",
"name": "Another Test Name",
"email": "[email protected]",
"photo": "path/to/img"
}
},
{
"id": "2",
"headline": "some text",
"body": "some text",
"authorId": "1"
"author_info": {
"id": "1",
"name": "Test Name",
"email": "[email protected]",
"photo": "path/to/img"
}
}
]
Ho un servizio di "articoli" che recupera gli articoli, ma qual è l'approccio migliore per arricchire il JSON restituita con le informazioni dell'autore dai simili "Autori" di servizio prima di tornare al Output del servizio "Articoli"?
factory('Authors', ['$http', function($http){
var Authors = {
data: {},
get: function(id){
return $http.get('/api/authors/' + id + '.json')
.success(function(data) {
Authors.data = data;
})
.error(function() {
return {};
});
}
};
return Authors;
}]).
factory('Articles', ['$http', 'Authors', function($http, Authors){
var Articles = {
data: {},
query: function(){
return $http.get('/api/articles.json')
.success(function(result) {
Articles.data = result; // How to get the author info into this JSON object???
})
.error(function() {
Articles.data = [];
});
}
};
return Articles;
}])
Per favore, dimmi se questo è un approccio completamente sbagliato. :)
Grazie per il consiglio, ma questo significherebbe andare a prendere tutti gli autori su ogni articolo, giusto? Questo è un sacco di traffico. –
No, il codice presuppone che è possibile recuperare tutti gli articoli e al termine si prenderà TUTTI gli autori. Quindi combinare i risultati. Sono coinvolte solo due richieste – Ulises
@ JakobLøkkeMadsen l'hai scoperto? – Ulises