2016-10-21 9 views
0

私は新しいionicです、私の懸念は私のデータリストの詳細を表示することです。私は私のJSONのすべての要素を表示することができますが、私は詳細についてはできません。私の関数 "GetPromo"は私に "null"を返します。 JSONで要素 "Hotel"の "id"を取得するにはどうすればよいですか?私たちを手伝ってくれますか ?あなたのhotel Idpromo Idで、あなたはpromos[j].Hotel.idでホテルの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":"[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ありがとうございます。

2)ご使用のjsonのhotel idは文字列です。したがって、parseIntpromoIdの場合、コンパレータは誤って評価されます。結果は'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; 
} 
関連する問題