是否可以从 XHR 中检索和使用车把模板,而不是使用脚本标签
Is it possible to retrieve and use a handlebars template from an XHR, instead of using the script tag?
把手文档显示,通过添加"脚本"节点在页面中插入模板:
<script id="myTemplate" type="text/x-handlebars-template">
<div>
<h3>cars</h3>
<fieldset>
{{#each model}}
<label class="labels">
{{answer}}
</label>
<br>
{{/each}}
</fieldset>
</div>
</script>
然后做:
var source = $(#myTemplate).html();
template = Handlebars.compile(source);
然后应用上下文以生成输出 HTML。
但是,我不想在页面中插入脚本,而是只想从我的 Web 服务器的脚本标签中获取所有内容。但是当我尝试从我的 Web 服务器编译源代码时,浏览器控制台抱怨意外的"<"。
我做错了什么?
当然有可能。
在此代码中:
var source = $(#myTemplate).html();
template = Handlebars.compile(source);
只需将第一行替换为通过 Ajax 调用检索 HTML 的 ajax 调用,然后编译获取 HTML 的结果。 因此,您不是从脚本标记中获取 HTML,而是从 ajax 调用中获取它,就像使用 ajax 调用从 Web 服务器获取任何其他数据一样。
如果您正在尝试这样做并得到错误,那么您必须更具体地说明您正在使用的代码,您得到的错误以及您从 ajax 调用中返回的结果,以便我们知道您在哪里出错了。 但是,如果你正确地实现它,这样做是完全合理的。 您不需要通过 Ajax 调用获得的 HTML 中的 <script>
标记,只需要表示模板的原始 HTML 代码段。