Javascript 把手或主干将空字符串插入html

Javascript 把手或主干将空字符串插入html,javascript,backbone.js,handlebars.js,Javascript,Backbone.js,Handlebars.js,我是车把和主干的新手,目前我正在尝试在我的网页上预编译车把模板。 然而,发生的事情是把手或主干(我不知道是哪个)向DOM中添加了一个空字符串。我不知道为什么。在主干视图中编译模板时,不会发生同样的情况 对我来说更奇怪的是,我有一个预编译的车把模板,但这不会发生 以下是预编译时html的图片: 以下是在主干视图中编译时的图片: template: function(data) { return Handlebars.templates['shell.html'];

我是车把和主干的新手,目前我正在尝试在我的网页上预编译车把模板。 然而,发生的事情是把手或主干(我不知道是哪个)向DOM中添加了一个空字符串。我不知道为什么。在主干视图中编译模板时,不会发生同样的情况

对我来说更奇怪的是,我有一个预编译的车把模板,但这不会发生

以下是预编译时html的图片:

以下是在主干视图中编译时的图片:

template:   function(data)
    {
        return Handlebars.templates['shell.html'];
    }

有人知道为什么会这样吗

我试图简化预编译的模板文件,只编译不接受任何数据的最简单模板,并查找该文件中的问题。。。我已经更改了返回字符串,但它没有解决问题,所以我认为问题应该在主干网内的某个地方

简单模板:

<div id="channelsContainer"></div>
<div>
    <div id="postsContainer"></div>
    <div>
        <div id="contentContainer"></div>
        <div id="detailsContainer"></div>
    </div>
</div>
在视图中编译时返回模板:

template:   function(data)
        {
            var handlebarTemplate = Handlebars.compile('<div id="channelsContainer"></div> \
<div> \
    <div id="postsContainer"></div> \
    <div> \
        <div id="contentContainer"></div> \
        <div id="detailsContainer"></div> \
    </div> \
</div>');

            return handlebarTemplate;
        }

非常感谢您能帮助我们了解正在发生的事情

我只能猜测,但我的一个模板也有类似的问题。在我的例子中,内联模板是解析为DOM节点的字符串,而不是解析为DOM节点的XML。因此,在解析之后,任何错误的空白都会被转换为文本元素,在调用模板时,这些元素会进入DOM。

我的同事找到了问题的答案。。。他只是用UTF-8保存了文件,没有BOM编码。。。 资源:

Visual Studio似乎以不适当的编码保存文件


谢谢你们两位的支持。

我已经尝试消除所有空白和新行。。。问题仍然存在。。。有没有办法将字符串解析为XML或DOM节点?你认为那样能解决问题吗?对不起,我不知道。我想我会提到它以防万一,因为这是我的问题,所以我想它也可能是你的。谢谢你的尝试,我很感激。
this.$el.empty().html(this.template());