Я пишу приложение на основе Django и Bootstrap, который отображает медиафайлы в виде миниатюр вместе с описанием и тегами. Я бы хотел, чтобы эти теги были оформлены как обычные ярлыки Bootstrap и были доступны для кликов.
Я использую X-editable для индивидуального редактирования описания и тегов (через Select2) и отправить их обратно на сервер. Это работает хорошо, за исключением тегов. Я не могу:
- Заполнить контейнер тегами с разметкой
- Получите чистые теги (без разметки), которые будут извлечены виджетом x-editable
- После внесения изменений в виджет x-editable верните чистые теги и отправьте их на сервер.
- Добавьте разметку к возвращенным тегам из виджета и заново заполните контейнер тегами с разметкой.
Шаг 3 (отправка чистых данных на сервер) - это то, что я, вероятно, могу понять или может стать предметом другого вопроса.
Эта скрипка должна проиллюстрировать, что я пытаюсь сделать, и результаты: обратите внимание, что когда кнопка редактирования при нажатии виджет загружает данные с нежелательной разметкой.
HTML: настройка X-редактируемых тегов и стиль тегов
<div class="controls controls-row">
<span class="tags" id="tags-editable-1" data-toggle="manual" data-type="select2" data-pk="1" data-original-title="Enter tags">
<a href="#"><span class="label">apples</span></a>
<a href="#"><span class="label">oranges</span></a>
<a href="#"><span class="label">pie</span></a>
</span>
<a href="#" id="tags-edit-1" data-editable="tags-editable-1" class=""><i class="icon-pencil"></i></a>
</div>
Javascript: настроить X-editable и Select2
$('.tags').editable({
placement: 'right',
select2: {
tags: ['cake', 'cookies'],
tokenSeparators: [",", " "]
},
});
$('[id^="tags-edit-"]').click(function(e) {
e.stopPropagation();
e.preventDefault();
$('#' + $(this).data('editable') ).editable('toggle');
});
Таким образом, фактический вопрос касается шагов 2 и 4: как я могу удалить разметку, отправленную в x-editable виджет, и повторно добавить ее к результатам, которые он возвращает?