#json #ionic-framework #factory
#json #ionic-framework #фабрика
Вопрос:
Я новичок в ionic, и моя задача — отобразить детали моего списка данных. Я могу отобразить все элементы моего JSON, но я не могу узнать подробности. моя функция «GetPromo» превращает меня в «null». Как я могу получить «id» элемента «Hotel» в моем JSON? Не могли бы вы мне помочь? Спасибо
var app = angular.module('hotelsApp.controllers', [])
// My factory
app.factory("PromoService", function(){
var promos = [
{
"Hotel":{
"id":"52",
"typeEtablissement":"HOTEL",
"nomHotel":"AUBERGE DES ILES",
"email":"auberge@ghaima.ci",
"siteWeb":null,
"situationGeo":"Assinie",
"nombreChambre":"12",
"commune_id":"21",
"standing_id":"4",
"prixChambreMin":"5000",
"prixChambreMax":"15000",
"tarif":"5 000 / 15 000",
"description":"L'auberge des u00eeles est un lieu paisible et reposant situu00e9 u00e0 Assinie. Un cadre tout aussi propice u00e0 l'u00e9vasion et au loisir, vous accueille pour des su00e9jours u00e0 court moyen et long terme.",
"typePaiement":"",
"autreinfo":"",
"logo":"/img/hotels/52/logo.jpg",
},
"Commune":{
"id":"21",
"libelle":"Assinie"
},
"Standing":{
"id":"4",
"nbEtoiles":"2",
"libelle":"2 Etoiles"
},
"Service":[
{
"id":"6",
"libelle":"Bar",
"Servicehotel":{
"id":"1360",
"hotel_id":"52",
"service_id":"6"
}
}
]
}
];
return {
GetPromos: function(){
return promos;
},
GetPromo: function(promoId){
for(var j = 0; j < promos.length; j ) {
if (promos[j].id === parseInt(promoId)) {
return promos[j];
}
}
return null;
}
}
});
// My controllers
app.controller('PromosCtrl', function($scope, PromoService) {
$scope.promos = PromoService.GetPromos();
});
app.controller('PromoCtrl', function($scope, $stateParams, PromoService) {
promoId = $stateParams.promoId;
$scope.promos[Hotel] = PromoService.GetPromo(promoId);
});
Ответ №1:
1) Предполагая, что ваш hotel Id
есть promo Id
, вы можете получить доступ к идентификатору отеля с помощью promos[j].Hotel.id
.
2) hotel id
В вашем json является строкой, и, следовательно, компаратор будет оценивать неверно, если вы parseInt
свой promoId
. Это приведет к '52' === 52
, значение которого равно false.
Подводя итог,
GetPromo: function(promoId) {
for (var j = 0; j < promos.length; j ) {
if (promos[j].Hotel.id === promoId) {
return promos[j];
}
}
return null;
}