2014-01-09 5 views
0

Я использую API от известной туристической компании, и у меня возникает эта проблема.Angularjs: Обработка переменной json-ответа

Проблема заключается в ответе на roomAvailability.

Теперь, если определенный отель имеет только один Room Type, он посылает его в качестве Room объекта, а не отправлять его как массив, который в противном случае было бы посылать, если были кратны Room Types

Теперь в моем шаблоне, у меня есть ng-repeat как:

<div ng-repeat='room in Rooms'>
Do some stuff like room.RoomType
</div>

Теперь, что происходит, когда Room не является массивом, ng-repeat терпит неудачу, так как он не перебирает номер array.

Теперь, что я могу сделать, это переменная области видимости canIterate и повторите код в моей разметке.

Но есть ли лучший способ, чтобы я мог избежать повторения кода в разметке?

+0

Не могли бы вы дать нам фрагмент обоих ответов JSON, когда он представляет собой массив и объект, просто фрагменты. – dcodesmith

ответ

0

Проверьте ответ HTTP перед тем, как поместить его в $ scope.Rooms. Если у ответа есть поле RoomType, объявите $ scope.Rooms = [response]; иначе $ scope.Rooms = response;

+1

Согласовано. Как проверить, является ли ответ массивом -> http://stackoverflow.com/questions/767486/how-do-you-check-if-a-variable-is-an-array-in-javascript –

Смежные вопросы