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