【问题标题】:Handlebars XML Parsing Errors in FirefoxFirefox 中的 Handlebars XML 解析错误
【发布时间】:2018-02-23 20:37:06
【问题描述】:

我是车把新手,刚刚开始在我的解决方案中实施它。一切进展顺利,但我的控制台仅在 Firefox 中出现错误(开发版和普通版)。我想先说我写的是 HTML 而不是 XML。

XML Parsing Error: undefined entity Location: http://127.0.0.5/templates/attachments.hbs?cacheBust=3 Line Number 5, Column 77:

这只是我得到的许多不同错误之一。这是由于 html 实体   造成的。这是 Firefox 制作的参考截图(我假设它会将不喜欢的部分涂成红色)。

我要么从根本上误解了车把中的{{#each}},要么有其他问题。比如为什么我的模板被解析为 XML? 这是我的模板:

<div>
<table>
{{#each attachments}}
<tr>
    <td class="options-attachment-link"><i class="fa fa-paperclip">&nbsp;</i><a href="/api/upload/display_file?file={{this.internalName}}&amp;Id={{this.Id}}">{{this.customerName}}</a></td>
</tr>
{{/each}}
</table>

这是我处理车把编译的 JS:

var attachmentsPromise = $.get('/api/upload/get_attachments/id/'+Id);
var attachmentsTemplatePromise = $.get('/templates/attachments.hbs?cacheBust=3');
attachmentsPromise.done(function(attachmentsData){
    attachmentsTemplatePromise.done(function(attachmentTemplate){
        var template = Handlebars.compile(attachmentTemplate);
        var data = template({attachments: attachmentsData});
        $(myDiv).html(data);
    });
});

请注意:一切正常。例如,它仍然呈现&amp;nbsp;。这只是firefox控制台中的错误 任何帮助表示赞赏,谢谢!

编辑: 对于任何可能偶然发现这一点的人,一旦视图加载类型为type="text/x-handlebars-template",我将通过在它们自己的脚本标签中包含所有车把模板来创建一些新视图。然后我在某些点击事件上编译并渲染它们。我还在脚本标记中包含了 HTML 实体字符 &amp;equals;,并且不再出现任何控制台错误。那么也许这与 AJAX 如何将数据返回到视图有关?

【问题讨论】:

    标签: javascript jquery ajax xml handlebars.js


    【解决方案1】:

    遇到类似的场景,发现html响应的header中没有content type字段。将内容类型添加为 text/html 解决了问题 例如

    Content-Type: text/html;charset=UTF-8
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-26
      • 1970-01-01
      • 2018-01-25
      • 2011-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多