У меня есть "приложение" Jasonette, которое получает простой набор данных с сервера и отображает его в списке. Данные представляют собой набор имен людей, каждое со словом «ДА», «НЕТ», «МОЖЕТ БЫТЬ» или null:
{
"date":"2018-11-07",
"dateFormatted":"Wednesday, November 7th",
"responses":[
{"name":"Jonathan","response":"NO"},
{"name":"Mark","response":"YES"},
{"name":"Stuart","response":"YES"},
{"name":"Jack","response":"MAYBE"},
{"name":"David","response":null}
]
}
Вот код приложения, скопированный из одного из примеров приложений:
{
"@": "http://web.jasonette.com/items/926",
"title": "OSTT Mincha",
"collection": {
"@": "responses@https://example.com/status.json"
},
"adapter": {
"title": "{{name}}",
"description": "{{response}}"
},
"style": {
"background": "#ffffff",
"header": {
"background": "#ffffff",
"color": "#2a2a2a"
},
"item": {
"title": "#bc9458",
"description": "#001000"
}
}
}
Теперь я хочу раскрасить строки ответов, чтобы «ДА» имел зеленый фон, «НЕТ» - красный, а «МОЖЕТ» - желтый.
Я попытался изменить образец "Basic ListView Mixin", чтобы добавить классы, которые добавили бы эти фоны, например:
{
"$jason": {
"head": {
"title": "Basic ListView Mixin",
"type": "mixin",
"data": {
"collection": {
"@": "$document.collection"
},
"style": {
"@": "$document.style"
},
"styles": {
"YES": {
"background": "#dff0d8"
},
"NO": {
"background": "#f2dede"
},
"MAYBE": {
"background": "#fcf8e3"
}
}
},
"templates": {
"body": {
"header": {
"title": {
"@": "$document.title"
},
"style": {
"background": "{{style.header.background}}",
"color": "{{style.header.color}}"
}
},
"background": "{{style.background}}",
"sections": [
{
"items": {
"{{#each collection}}": {
"type": "horizontal",
"style": {
"padding": "10",
"spacing": "10"
},
"components": [
{
"type": "vertical",
"components": [
{
"type": "label",
"style": {
"font": "HelveticaNeue-Bold",
"size": "12",
"color": "{{$root.style.item.title}}"
},
"class": "{{$document.adapter.description}}",
"text": {
"@": "$document.adapter.title"
}
},
{
"type": "label",
"text": {
"@": "$document.adapter.description"
},
"style": {
"font": "Helvetica",
"size": "11",
"color": "{{$root.style.item.description}}"
},
"class": "{{$document.adapter.description}}"
}
]
}
]
}
}
}
]
}
}
}
}
}
Проблема в том, что в выводе я не вижу примененных классов. Вместо этого class
значение равно {{$document.adapter.description}}
- необработанное значение шаблона.
Согласно моим прочтениям документации, здесь должны быть разрешены значения шаблонов. Почему значение этого шаблона не заменяется?