Приложение My AngularJs читает json файл, имеющий пары ключ/значение. Пара ключей/значений генерируется программой java с использованием HashMap.
Я пытаюсь создать HTML, используя ng-repeat директиву в AngularJs следующим образом.
<li ng-repeat="(line, lineContents) in errorsFromLogFile">
{{line}} - {{lineContents}}
</li>
Я также хочу получить доступ к предыдущей (key/value) паре.
Прошли через эти ссылки stackoverflow. Как получить предыдущий элемент в ng-repeat, сравнить значения внутри ng-repeat и попытаться получить доступ к предыдущему ключу как
{{ errorsFromLogFile[$index-1].line }}
но ничего не дает. Как получить доступ к предыдущему ключу/значению в этом случае?
Файл json выглядит так:
- errorsFromLogFile: {
7308: "/tmp/cct7oRJm.s:2099392: Warning: .stabs: description field '11668' too big, try a different debug format",
7309: "/tmp/cct7oRJm.s:2099393: Warning: .stabs: description field '120d3' too big, try a different debug format",
7310: "/tmp/cct7oRJm.s:2099394: Warning: .stabs: description field '128a6' too big, try a different debug format",
7311: "/tmp/cct7oRJm.s:2099395: Warning: .stabs: description field '13046' too big, try a different debug format",
7312: "/tmp/cct7oRJm.s:2099396: Warning: .stabs: description field '1386c' too big, try a different debug format",
}
Возможно, вам придется использовать внутреннее свойство $$prevSibling
которое дает предыдущую область $$prevSibling
и в этом случае предыдущую область, созданную ng-repeat
. Это связано с тем, что вы используете карту объектов, а не массив. errorsFromLogFile[$index-1]
не будет работать в массиве объектов, потому что это просто означает, что вы пытаетесь получить доступ к значению индекса свойства из массива, то есть errorsFromLogFile[0], errorsFromLogFile[1]
и т.д.
т.е. {{$$prevSibling.line}}
и {{$$prevSibling.lineContents}}
который должен работать, но не рекомендуется использовать частные свойства в области.
Еще одно лучшее предложение - преобразовать его в массив объектов и просто иметь регулярный синтаксис итерации ng-repeat
и получить предыдущий элемент с помощью индекса.
errorsFromLogFile[$index-1] == errorsFromLogFile[$index]