我有一个标签,看起来像这样:如何过滤模板标签?
{% partial "partials/vehicleform.html" vehicle=vehicles.empty_form %}
刚刚呈现一个空的形式。但是现在我想将其输出传递给escapejs
过滤器,以便我可以在JavaScript变量中使用它。我怎样才能做到这一点?
我有一个标签,看起来像这样:如何过滤模板标签?
{% partial "partials/vehicleform.html" vehicle=vehicles.empty_form %}
刚刚呈现一个空的形式。但是现在我想将其输出传递给escapejs
过滤器,以便我可以在JavaScript变量中使用它。我怎样才能做到这一点?
很多标签支持as variablename
- 也就是简单的把as variablename
放在标签的末尾,然后把标签的输出放在变量中而不是显示出来。
这{% partial %}
标签可能支持。下面是一个例子,如果这样做:
{% partial "partials/vehicleform.html" vehicle=vehicles.empty_form as myvar %}{{ myvar|escapejs }}
如果有问题的标签是"Partial tag" snippet然后它会显示它不支持这一点。但它可能会被重写来支持它。
您可以使用“Capture template output as a variable”片断,然后将过滤器应用于捕获的内容,就像这样:
{% captureas myvar %}{% partial "partials/vehicleform.html" vehicle=vehicles.empty_form %}{% endcaptureas %}{{ myvar|escapejs }}
另一种解决方案,以使数据进入一个JS变量:
<div class="display:none" id="empty-vehicle-form">{% partial "partials/vehicleform.html" vehicle=vehicles.empty_form %}</div>
然后将其取出并同时将其删除
var empty_form = $('#empty-vehicle-form').remove().html();
此解决方案的优点n是您的其他JS脚本可以在将它从DOM中取出之前对其进行预处理。 escapejs
也创建更大的文件大小与所有这些转义字符。
它是支持变量命名的部分标记片段的修改版本。 http://djangosnippets.org/snippets/2104/我认为'captureas' sol'n应该可以工作。 – mpen 2010-08-10 17:00:58
用于自定义标签captureas – 2011-07-27 08:43:53