У меня есть общий элемент управления плиткой, который создается на основе количества доступных объектов (например, SCARRSet), что нормально. Затем во вложенном содержимом плитки мне нужно показать логотип авиакомпании, где путь к изображению хранится в файле JSON. Моя идея состоит в том, чтобы использовать ключ в SCARRSet/Carrid для поиска файла JSON, чтобы найти путь к изображению. Таким образом, для авиакомпании будет отображаться правильное изображение.
Раньше я помещал путь к изображению в поле URL, что было нормально, но это поле предназначалось для чего-то другого. Теперь я хочу сделать это правильно.
<l:HorizontalLayout id = "hLayout1" allowWrapping = "true" content = "{flight>/SCARRSet}">
<GenericTile class = "sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout"
header = "{flight>Carrname}"
subheader = "{flight>Carrid}"
press = "onTilePressed"
backgroundImage = "">
<TileContent unit = "{flight>Currcode}" footer = "">
<ImageContent src = "{flight>Url}" />
</TileContent>
</GenericTile>
</l:HorizontalLayout>
Файл JSON выглядит следующим образом. Есть ли способ перебрать каждую плитку для поиска Key = SCARRSet/Carrid, а затем заполнить imageContent src=(например: "/image/AA.gif")?
{
"icon": [
{
"Key" : "AA",
"Path" : "/image/AA.gif"
},
...
]
}
Я бы использовал функция форматирования для поиска:
src = "{formatter: '.formatter.getIconUrl', path: 'flight>Carrid'}"
В форматере getIconUrl
вы получаете Carrid
в качестве входного параметра.
Из соображений производительности я бы также предложил переформатировать JSON один раз, чтобы получить хэш-доступ к URL-адресу: jsonData[carrid]
возвращает URL-адрес.
Спасибо за совет! Однако я не слишком уверен в вашей второй рекомендации. В основном я пишу оператор if else в моей функции форматирования, чтобы вернуть iconUrl - это очень долго.