Я играю на Svelte (JS), чтобы создать приложение для медицинского обследования.
Мои данные о {категориях, тестах, подтестах}
Мне нужно использовать сборщик аккордеонных подтестов для подачи резюме записей.
Выбор дизайна заключается в объединении категорий и уровней испытаний в зависимости от объема.
Пользователь выбирает категорию + тест, а аккордеон показывает подтесты, которые можно выбрать ..
Я не очень знаком с двусторонним связыванием данных с Svelte.
Я пробовал это, но приводит к ошибке типа: «ctx.selected» не определено.
<section>
<h1>Pick subtests you need in accordion list</h1>
<div class="accordion">
{#each cats_tests as ct, ctidx }
<div class="wrapper">
<h2 class="ct-heading">
<label>
<input bind:group='selected' value={ ctidx } type=checkbox />
<span>{ ctidx }: { ct.name }</span>
</label>
</h2>
{#if selected[ctidx] }
{#each ct.subtests as sub, subidx }
<div transition:fade>
<h3 class="subtest-heading">
<label for="ct-{ctidx}-sub-{subidx}">
<input id="ct-{ctidx}-sub-{subidx}" type="checkbox" />
<span>{ subidx }: { sub.name }</span>
</label>
</h3>
</div>
{/each}
{/if}
</div>
{/each}
</div>
</section>
<script>
import { fade } from 'svelte-transitions'
export default {
transitions: { fade},
oncreate() {
},
data() {
return {
cats_tests: [
{
name: 'Cat A - Test 1',
subtests: [
{ name: 'subtest-s'},
{ name: 'subtest-t'},
{ name: 'subtest-u'}
]
}, {
name: 'Cat A - Test 2',
subtests: [
{ name: 'subtest-v'},
{ name: 'subtest-w'},
{ name: 'subtest-x'} ,
{ name: 'subtest-y'}
]
}, {
name: 'Cat B - Test 3',
subtests: [
{ name: 'subtest-z'}
]
}
]
}
}
}
</script>
<style>
h2.ct-heading {
background-color: #d1e1f1;
}
h3.subtest-heading {
padding-left: 15%;
}
</style>
Вопросы:
- Как это исправить?
- Как получить выбранные подтесты в других частях приложения, не запрашивая сервер? Представьте, что я использую плагин svelte-routing и магазин
Спасибо за ответы.