2016-02-16 115 views
0

我正在学习Angular并且有一些酒店房间的价格。但是,如果您停留超过1夜,则在NightlyRate中返回的数据将存储在一个数组中,否则它将位于一个对象中。阵列或物体条件

我不知道如何解决这个问题?我可以在视图中以内联方式执行此操作,还是应该在控制器或模型中执行此操作?

我需要添加一个ng-repeat如果超过一晚

如果1夜

{{roomPrices.NightlyRatesPerRoom.NightlyRate['@baseRate']}} 

"NightlyRatesPerRoom": { 
"@size": "1", 
"NightlyRate": { 
    "@baseRate": "154.55", 
    "@rate": "154.55", 
    "@promo": "false" 
} 

},

如果超过一晚

<div ng-repeat="roomPrice in roomPrices.NightlyRatesPerRoom.NightlyRate"> 
    <div class="row"> 
     <div class="col-xs-8"> 
      <p>Night {{$index+1}}:</p> 
     </div> 
     <div class="col-xs-4"> 
      <p class="text-xs-right">${{roomPrice['@baseRate']}}</p> 
     </div> 
     </div> 
</div> 

"NightlyRatesPerRoom": { 
"@size": "3", 
"NightlyRate": [ 
    { 
    "@baseRate": "154.55", 
    "@rate": "154.55", 
    "@promo": "false" 
    }, 
    { 
    "@baseRate": "154.55", 
    "@rate": "154.55", 
    "@promo": "false" 
    }, 
    { 
    "@baseRate": "154.55", 
    "@rate": "154.55", 
    "@promo": "false" 
    } 
] 

},

+0

退房NG-如果 – jornare

+1

你为什么不只是让一个数组不管有多少个晚上, ? – Seonixx

+0

数据来自第三方API,因此我无法更改它 – ottz0

回答

-1

你可以看到下面...,以确定它是否是对象或数组

var objnight = roomPrices.NightlyRatesPerRoom.NightlyRate; 


    if(Object.prototype.toString.call(objnight).toString() == "[object Array]"){ 
     alert("array") 
    }else if(Object.prototype.toString.call(objnight).toString()=="[object Object]"){ 
    alert(object) 
} 
+0

这个可怕的建议。相反,你可以使用'angular.isArray'。 –