Продолжаю тренировки.
Есть некая спецификация FHIR (
http://hl7.org/fhir), согласно которой нужно производить на свет такие какбе описания больных человеков —
http://www.hl7.org/implement/standards/fhir/patient-example.json.html.
JSON-ы эта спецификация рожает развесистые и изобилующие вложенными массивами.
Пытаюсь выполнить байндинг как-то так:
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<style>
@import url(plus.css);
</style>
<script type="text/tiscript">
include "plus.tis";
var Model = {
patients: [
{
"resourceType":"Patient",
"identifier":[{
"system":"bfe98cd1-a6e3-44f2-8516-ca538ab1ed65",
"value":""
}],
"name":[{
"family":["Smith"],
"given":["Bob"],
"suffix":[""]
}],
"gender":"male",
"birthDate":"19700001"
},
{
"resourceType":"Patient",
"identifier":[{
"system":"c94768c5-035e-4b5c-bade-f9c517bd1a8f",
"value":""
}],
"name":[{
"family":["Doe"],
"given":["John"],
"suffix":[""]
}],
"gender":"male",
"birthDate":"19600001"
}
]
};
</script>
</head>
<body model="Model">
<table border="1">
<thead>
<tr>
<th>Id</th>
<th>Family</th>
</tr>
</thead>
<tbody each="patient in patients">
<tr class="DataGridRow">
<td><output name="patient.identifier[0].system" /></td>
<td><output name="patient.name[0].family[0]" /></td>
</tr>
</tbody>
</table>
</body>
</html>
Видно, что +plus прилежно генерирует в таблице две строчки, но с форматированием вложенных свойств не справляется.
Что с этим можно сделать?
* * *
В голову пока приходит только такой способ уплощения модели
// После получения массива данных
for (var p in Model.patients) {
p.family = p.name[0].family[0];
p.given = p.name[0].given[0];
p.suffix = p.name[0].suffix[0];
p.id = p.identifier[0].system;
}
Можно ли это как-нибудь все красивше? Кроме просто отображения объекта в списке мне нужно объект еще и показать в форме, а потом из формы обратно собрать объект и отправить его на сервер.