2013-02-14 74 views
5

我是新來的句柄和骨幹,我目前正試圖在我的網頁上預編譯車把模板。 但是,發生的事情是,句柄或骨幹,我不知道是哪一個,向DOM中添加一個空字符串。我不知道爲什麼。當我在骨幹視圖中編譯模板時,不會發生同樣的事情。把手或骨幹將空字符串插入html

更奇怪的對我來說,我有一個預編譯的車把模板,這不會發生這種情況?

下面是HTML的圖片預編譯時:

enter image description here

這裏是一個圖片的視圖骨幹內編譯時:

enter image description here

有人知道爲什麼會發生這種情況嗎?

我試圖簡化預編譯模板文件,只編譯最簡單的模板,不接受任何數據,並尋找問題的文件...我已經改變了返回字符串,但它沒有'牛逼解決這個問題,所以我想這個問題必須是地方骨幹內...

簡單的模板:

<div id="channelsContainer"></div> 
<div> 
    <div id="postsContainer"></div> 
    <div> 
     <div id="contentContainer"></div> 
     <div id="detailsContainer"></div> 
    </div> 
</div> 

返回從模板函數的預編譯模板中的骨幹觀點:

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

返回模板在編譯的觀點:

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; 
     } 

在同一個骨幹視圖,在initialize方法:

this.$el.empty().html(this.template()); 

任何幫助,首先要弄清楚發生了什麼事是非常讚賞。

回答

1

我的同事找到了解決問題的辦法......他剛纔保存的文件使用UTF-8無BOM編碼... 資源: UTF-8 without BOM

看來,Visual Studio中保存有不適當的文件編碼...

謝謝你們的支持。

0

我只能猜測,但我有一個類似的問題與我的模板之一。就我而言,內聯模板是將字符串解析爲DOM節點,而不是將XML解析爲DOM節點。因此,在解析之後,任何錯誤的空白都被轉換爲TEXT元素,這些元素在模板被調用時找到了進入DOM的方式。

+0

我試過消除所有的空格和新行......問題仍然存在......有沒有一種方法可以將字符串解析爲XML或DOM節點?你認爲這會解決問題嗎? – Marin 2013-02-14 11:55:31

+0

對不起,我不知道。我想我會提及它以防萬一,因爲這原來是我的問題,所以我認爲它可能是你的。 – Recurse 2013-02-14 21:34:22

+0

謝謝你的嘗試,我很感激。 – Marin 2013-02-15 00:57:43