Дисциплины - Проектирование динамических страниц

Динамика AlpineJS - Готовые решения на AlpineJS - Связные списки

Исходный код Выпадающего списка с подкатегориями https://codepen.io/cfjedimaster/pen/VwXrKOR

Пояснения по исходному коду:

В данном примере javascript код вынесен в отдельный скрипт.

AlpineJS запускается по событию 'alpine:init'. Далее, с помощью Alpine.data объявляются значения переменных. Функция getStates возвращает список штатов. По событию выбора элемента из списка, вызывается функция getCities, которая по id штата возвращает список городов.

 document.addEventListener('alpine:init', () => {
  Alpine.data('app', () => ({
		states:getStates(),
		state:null,
		city:null,
		cities() {
			return getCities(this.state);
		}
  }))
});

const getStates = () => {
	return [
		{id:1, label:"Alabama"},
		{id:2, label:"California"},
		{id:3, label:"Louisiana"},
		{id:4, label:"Texas"},
		{id:5, label:"Washington"}
		]
}

/*
generates fake cities, later states have more values
*/
const getCities = (id) => {
	if(!id) return [];
	let state = (getStates()).find(i => i.id === parseInt(id,10));
	let result = [];
	for(let i=0; i<(id*2); i++) {
		result.push({id:i, label:`${state.label} City ${i+1}`});
	}
	return result;
}

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться
00421-00422 ИИТ БГУИР
00423 ИИТ БГУИР
10421-10422 ИИТ БГУИР
10423 БГУИР
20421 БГУИР
30421 БГУИР
30423 БГУИР


Изображения Видео

1. JavaScript. Функциональное программирование. Лекция 2. Преобразование данных <iframe width="560" height="315" src="https://www.youtube.com/embed/EBKzRg4aTro" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
2. JavaScript. Функциональное программирование. Лекция 2 (продолжение) <iframe width="560" height="315" src="https://www.youtube.com/embed/phyt4PFk6Pc" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
3. HTML5 http://erud.by/files/books/HTML5.docx
4. ООП в JavaScript http://erud.by/object_orient_program/586
5. Фоновое видео jQuery http://johnpolacek.github.io/BigVideo.js
Учебная программа