2016-10-21 59 views
0

我是新的離子,我的關注是顯示我的數據列表的細節。我得到顯示我的JSON的所有元素,但我無法瞭解細節。我的函數「GetPromo」把我變成「null」。如何在我的JSON中獲取元素「Hotel」的「id」?你可以幫幫我嗎 ?謝謝離子框架大師的詳細信息不要與嵌套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[email protected]", 
     "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 situ\u00e9 \u00e0 Assinie. Un cadre tout aussi propice \u00e0 l'\u00e9vasion et au loisir, vous accueille pour des s\u00e9jours \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); 
}); 

回答

0

1)假設你是hotel Idpromo Id,你可以用promos[j].Hotel.id進入酒店ID。

2)您的json中的hotel id是一個字符串,因此比較器會錯誤地評估您的parseInt您的promoId。這將導致'52' === 52評估爲錯誤。

概括起來,

GetPromo: function(promoId) { 
    for (var j = 0; j < promos.length; j++) { 
    if (promos[j].Hotel.id === promoId) { 
     return promos[j]; 
    } 
    } 
    return null; 
}