【问题标题】:from javascript to jinja2从 javascript 到 jinja2
【发布时间】:2012-12-28 12:26:46
【问题描述】:

是否可以通过 jquery 中的 .getJSON 调用获得的数据作为 jinja2 变量访问?

 $.getJSON(
            $SCRIPT_ROOT +"/gitem/"+node.id,
            function(data){
                if (data.length > 0){

                    $.each(data, function(index,val_dict) {




                        var button_id = "button_"+String(index);
                        var popup_id = "element_to_pop_up_"+String(index);

                        var append_string = sprintf('<div class="icony"><img src="%s"  height="75" id="%s" >%s</div>',val_dict.img_url,button_id,val_dict.img_caption);
                        var bpopup_element = sprintf('<div id="%s"><a class="bClose"><img src="%s" width="500px">X<a/></div>',popup_id,val_dict.img_url)

                    $('.data_area').append(append_string+bpopup_element);

                        $('#'+popup_id).hide();

                        $('#'+button_id).bind('click', function(e) {
            e.preventDefault();
            $('#'+popup_id).bPopup();

                        });

                    });
                }
                else
                {
                    var append_string = '<div class="icony">No Images to display for this category</div>';
                    $('.data_area').append(append_string);
                }

                $("#list_viewer").css("display", "block");
            });

例如在上面我获取数据然后在 js 中构建 DOM。虽然最好通过 .getJSON 导入数据,然后将数据设置为 jinja2 变量。

稍后我可以在 jinja2 模板中使用该变量吗?

这可能吗?


或者更好……

可以从 .getJSON 函数中调用 jinja 宏吗?这也可以允许将 json 数据嵌入到 jinja2....

感谢您的指点...

【问题讨论】:

    标签: getjson jinja2


    【解决方案1】:

    可能不会。 Jinja 通常在服务器上运行,在将您的网站模板发送到客户端之前呈现它们。客户端(即您的网络浏览器)将无法访问模板。

    如果您想使用 Jinja 模板来呈现客户端 JSON 对象,您可以查看Jasinja,这是一个将您的 Jinja 模板转换为 JavaScript 的工具,然后您可以在浏览器中使用它.存在许多类似的工具。

    最后,另一种解决方案是将您的 JSON 数据发送到 Web 服务器,通过 Jinja 将它们呈现为 HTML,然后在 XMLHttpRequest 响应中发回生成的 HTML。但是,如果您从用于呈现模板的同一服务器获取此 JSON 数据,则最好将 HTML 直接发送到客户端并从那里添加到 DOM。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-13
      • 1970-01-01
      相关资源
      最近更新 更多