2013-03-06 42 views
3

我正在将我的一个项目迁移到使用HandlebarsJS模板而不是下划线模板,并且遇到了一个非常奇怪的问题。HandlebarsJS预编译模板中的空白区域

我使用的是预编译模板和无处不在我正在追加呈现模板的DOM我得到附加以及其造成的布局问题与差距,代替它们

在寻找使一个空的文本元素在Chrome浏览器开发控制台显示附加到一个div的3个模板下面的标记:

> <div> 
     "" 
     <div><!--content --></div> 
     "" 
     <div><!--content --></div> 
     "" 
     <div><!--content --></div> 
    </div> 

当倾销父DIV HTML到JavaScript控制台没有任何空间可言,它只是:

<div><!--content --></div><div><!--content --></div><div><!--content --></div> 
+0

什么模板样子的问题?你如何追加它们?也许jsfiddle.net或jsbin.com上的一个简单例子会有所帮助。 – 2013-03-06 16:17:36

+0

好主意:它有点做作,因为我不得不重做代码来工作jsfiddle并复制相关的库代码(我的代码在底部) - http://jsfiddle.net/abJMU/1/当它运行时,检查输出HTML,你将会看到我的意思是在每个模板之前追加空的文本节点 – Eriedor 2013-03-06 17:17:32

+0

(1)你可以使用* External Resources *面板导入'handlebars.js'(或者以http: (2)模板是什么样子的?我怀疑预编译与此有什么关系。 – 2013-03-06 17:38:37

回答

1

好了,现在已经解决了,根据对原始问题的评论,问题是在预编译期间添加的\ ufeff字符,我的IDE和开发人员浏览器扩展程序甚至没有显示可见的空白区选项启用。

要解决我我的模板附加代码更新到

$container.append(template({ *data* }).replace(/\ufeff/, ''));