#javascript #jquery #json #svelte
#javascript #jquery #json #стройный
Вопрос:
У меня есть следующая небольшая настройка в Svelte:
Календарь и флажки работают. То, что я пытаюсь понять, — это лучший способ чтения и сохранения ответов на опции для каждой даты, выбранной пользователем.
Вот что у меня сейчас есть в моем файле svelte:
<script>
import Datepicker from "praecox-datepicker";
import { onMount } from 'svelte';
export let name;
let day;
let questions = [
{value: "Condition 1", checked: false},
{value: "Condition 2", checked: false},
{value: "Condition 3", checked: false},
{value: "Condition 4", checked: false}
];
let selectedQuestions = [];
$: questions = {...questions,
[day]: [
{value: "Condition 1", checked: false},
{value: "Condition 2", checked: false},
{value: "Condition 3", checked: false},
{value: "Condition 4", checked: false},
]
};
$: {
selectedQuestions = questions.savedValues[day]
};
$: selectedQuestions = Object.fromEntries(Object.entries(questions).filter(([key, value]) => key == day))
$: day = day;
$: readDate = new Date(day);
$: mm = readDate.toLocaleString("en-US", {month: "long"});
$: dd = readDate.toLocaleString("en-US", {day: "numeric"});
$: yyyy = readDate.toLocaleString("en-US", {year: "numeric"});
onMount(async () => {
day = new Date()
});
</script>
<main>
<div class="row">
<div class="col-sm">
<Datepicker pickerRule='singleChoice' bind:pickerResult={day}/>
</div>
<div class="col-sm">
<p>{mm} {dd}, {yyyy}</p>
<ul>
{#each questions as question}
<li>
<input type=checkbox checked={question.checked}>
{question.value}
</li>
{/each}
</ul>
</div>
</main>
Текущая проблема заключается в том, что я не уверен, как получить доступ к отфильтрованному объекту и правильно ли я к нему обращаюсь.
Чтобы резюмировать рабочий процесс, необходимо выполнить следующее:
- Пользователь загружает страницу, отображаются параметры и по умолчанию значение false.
- Пользователь выбирает параметры для первого свидания, они сохраняются, и пользователь переходит на новый день.
- Представлен новый список флажков, все по умолчанию имеют значение false. Пользователь обновляет параметры, и они сохраняются.
- Пользователь повторно просматривает элемент и обновляет ранее введенную информацию.
Комментарии:
1. Возможно, это вам поможет: svelte.dev/tutorial/group-inputs
2. Не могли бы вы предоставить codesandbox ?
3. @johannchopin По какой-то причине пакеты Svelte и NPM плохо сочетаются в codesandbox. Я попытался собрать их вместе перед созданием сообщения, но не смог заставить календарь работать должным образом.
4. @Hayden календарь работает в REPL
5. Пока у вас есть учетная запись на Github, вы можете создавать, сохранять, делиться прямыми ссылками, просматривать сохраненные проекты. Просто войдите в систему с помощью Github, нажав на кнопку, показанную здесь . После того, как у вас есть сохраненный проект, вы можете просто захватить URL-адрес и поделиться им.
Ответ №1:
Вам нужно:
1. Обновитесь praecox-datepicker
до версии 1.0 или выше.
2. Используйте bind:selected
для получения выбранного результата.
3. Передайте результат выбора (дату начала) в viewDate
свойство, чтобы синхронизировать представление.
4. Если вы хотите получить своевременный ответ, пожалуйста, отправьте вопрос непосредственно на Github.