jeditable loadurl: ссылка на идентификатор CSS или просто передача переменных по мере необходимости
У меня есть это на моей странице:
$('.editable-question').editable('{{my_identifier}}/form_item/edit',{
//loadurl: 'example/restful/url/in/app/{{???????????????}}',
type : 'textarea',
cancel : 'Cancel',
submit : 'OK',
name : 'edit_this',
});
Я использую jeditable, в приложении Flask внутри шаблона jinja. Проблема в том, что мне нужно передать информацию в "loadurl" для получения неформатированного текста уценки, но я понятия не имею, как получить что-то из css в этот оператор loadurl:
<div id="f4d629f9f0" class="editable-question" style="">
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit</p>
</div>
В этом случае я хочу получить идентификатор CSS в {{????????}}. Как это обычно делается? Похоже на общий вопрос, но у меня еще нет ни одного поднятого вопроса или ответа. Полагаю, больше.
Менее острая проблема заключается в том, что в какой-то момент мне нужно будет удалить мои js из шаблонов jinja, но я не уверен, каким образом я получаю нужные мне переменные на страницу, а затем в js: я предполагаю скрытые элементы и / или URL-ссылка, что JS захватывает переменные по мере необходимости.
редактировать:
Я закончил с чем-то вроде:
$('.editable-question').editable('/form_item/edit',{
id: 'my_id',
loadurl: 'node',
type : 'textarea',
cancel : 'Cancel',
submit : 'OK',
name : 'edit_this',
});
и my_id передается в качестве параметра url (?my_id={{css id}})) с помощью jeditable, но это выглядит грязно, я бы предпочел спокойный URL, но мне нужно просто сделать так, чтобы двигаться дальше.
1 ответ
Я не знаю, правильно ли я понимаю ваши вопросы? Но я придумал три ответа:
1) Если вы включите свой js в шаблон HTML, jinja может отобразить HTML и js. Для jinja не имеет значения, какие данные находятся в шаблоне HTML, TXT, CSS или JS.
2) Вы можете передать свои переменные в скрытые поля вашего HTML-шаблона и использовать манипуляции с dom (например, jquery), чтобы получить переменные из dom.
3) Вы можете включить небольшой JavaScript в ваш HTML, который содержит только функцию с переменными. В ваших внешних файлах JavaScript вы можете получить доступ к этим функциям, чтобы получить переменные.
Чтобы получить представление, вот часть шаблона HTML для настройки редактора codemirror и использования jinja в HTML и встроенном js:
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="UTF-8">
<link type="text/css" rel="stylesheet" href="/jinjacms/static/jinjacms.css">
<link type="text/css" rel="stylesheet" href="/codemirror/lib/codemirror.css">
<link type="text/css" rel="stylesheet" href="/codemirror/theme/rubyblue.css">
<script type="text/javascript" src="/codemirror/lib/codemirror.js"></script>
<script type="text/javascript">
function editor(id)
{
CodeMirror.fromTextArea(document.getElementById(id), {
theme: "rubyblue",
lineNumbers: true,
mode: {{ mode }},
{% if readonly %}readOnly: "nocursor",{% endif %}
tabSize: 4,
indentUnit: 4,
indentWithTabs: true,
tabMode: "shift"
});
}
</script>
<style>.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
<title>{{ title }}</title>
</head>
<body onload="editor('text_data');">