hashspark
@hashspark

Хранение состояния/свойства элемента на странице?

Добрый вечер.

Не являюсь специалистом в данной области и поэтому возник такой вопрос. Сейчас попробую объяснить всё на примере:

Есть некий статичный html, который отдается бекенд частью. И пусть это будет список кинофильмов, при нажатии на один из них необходимо отправить ajax запрос и получить список главных героев/оценку/описание.
Запрос формируется на www.site/api_url/<id_фильма>

А теперь собственно сами вопросы:

1. Где хранить <id_фильма>?
1a. Большой ли моветон хранить их в аттрибуте data-cinema-id="<id_фильма>"?
2. Ну и вообще как правильно организовать получение данных из DOM в переменные js и обратно?

upd
Дописали функционал и это уже страница редактирования этих фильмов. К которому соотносится список актёров с со своими id-actor и в какой то момент актёров можно менять) вопросы всё теже.

Да я слышал про ajgularJS и про backbone, но тут как я понимаю пушкой по воробьям.
  • Вопрос задан
  • 2902 просмотра
Решения вопроса 1
@artishok
кратко
1а. Даже наоборот, это верное решение
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Вообще непонятно, зачем понадобился тот же AngularJS.
ID фильма вполне приемлемо хранить в атрибуте id элемента списка фильмов. Он же будет такой один на страницу все равно, насколько я понимаю.
Допустим, у вас список вроде следующего:
<ul id="films">
<li><a id="1" href="">Фильм1</a></li>
<li><a id="2" href="">Фильм2</a></li>
<li><a id="3" href="">Фильм3</a></li>
</ul>

Предположим, у вас используется jQuery (наверняка же используется?), тогда пишем что-то вроде следующего:
$(document).ready(function(){
    $('#films a').click(function(){
        var film_id = this.id;
        // Тут ajax-запрос и манипуляция с данными полученными
    });
});


Хотите хранить в своем атрибуте — храните.
Если задача более специфичная или есть какие-то еще нюансы, уточняйте.
Ответ написан
Допустим, такая структура:
<ul id="films">
  <li><a href="www.site/api_url/1">Фильм 1</a></li>
  <li><a href="www.site/api_url/2">Фильм 2</a></li>
  <li><a href="www.site/api_url/3">Фильм 3</a></li>
</ul>


Может быть, в данном случае и не нужен атрибут id:
$(document).ready(function(){
    $('#films a').click(function(){
        var href = this.href;
        // Ajax-запрос на адрес www.site/api_url/<id_фильма>, т.е. href
    });
});


Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы