0

我的页面上有这个:

$('.editable-question').editable('{{my_identifier}}/form_item/edit',{
                    //loadurl: 'example/restful/url/in/app/{{???????????????}}',
                    type   : 'textarea',
                    cancel : 'Cancel',
                    submit : 'OK',                  
                    name   : 'edit_this',
                  });

我在 jinja 模板内的 Flask 应用程序中使用 jeditable。问题是,我需要将信息传递给“loadurl”以检索未格式化的降价文本,但我不知道如何从 css 中获取一些内容到该 loadurl 语句中:

<div id="f4d629f9f0" class="editable-question" style="">
    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit</p>
</div>

在这种情况下,我想将 css id 放入 {{????????}}。这通常是如何完成的?似乎是一个常见问题,但我还没有提出任何问题或答案。更多 rtfm'ing 我想。

一个不太紧迫的问题是我需要在某个时候从 ji​​nja 模板中删除我的 js,但我不确定如何将我需要的变量放入页面然后放入 js:我猜隐藏元素和/或js 根据需要抓取变量的 url 引用。

编辑:

我最终得到了类似的东西:

$('.editable-question').editable('/form_item/edit',{
                    id: 'my_id',
                    loadurl: 'node',
                    type   : 'textarea',
                    cancel : 'Cancel',
                    submit : 'OK',                  
                    name   : 'edit_this',
                  });

并且 my_id 被 jeditable 作为 url 参数 (?my_id={{css id}}) 传递,但感觉很脏,我更喜欢安静的 url,但只需要完成 atm 的工作,所以继续前进。

4

1 回答 1

0

不知道我理解你的问题是否正确?但我想出了三个答案:

1)如果您在 HTML 模板中包含您的 js,jinja 可以渲染 HTML 和 js。对于 jinja,模板 HTML、TXT、CSS 或 JS 中的数据类型无关紧要。

2) 您可以在 HTML 模板的隐藏字段中传递变量,并使用 dom 操作(如 jquery)从 dom 中获取变量。

3) 你可以在你的 HTML 中包含一个小的 javascript,它只包含一个带有变量的函数。在您的外部 javascript 文件中,您可以访问这些函数来获取变量。

为了得到这个想法,这是一个 HTML 模板的一部分,用于配置 codemirror 编辑器并在 HTML 和内联 js 中使用 jinja:

<!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');">
于 2012-11-21T16:22:32.697 回答