2014-10-28 45 views
0

我學習Backbone.js的,我找不到什麼是錯,此代碼:Backbone.js的:一個簡單的渲染功能

NView = Backbone.View.extend({ 
    tagName: 'span', 
    render: function(){ 
     $(this.el).html('<h3>' + this.model.get('comments') + this.model.get('minutes') + '</h3>'); 
    } 
}); 

newView = new NView({ model: NModelo }); 

newView.render(); 

console.log(newView.el); 

,我認爲它應該是記錄此:

<span> <h3> .... </h3> </span> 

但它只是記錄一個<span> </span>,無標籤之間的任何東西,爲什麼呢?

+1

似乎做工精細(http://jsfiddle.net/ambiguous/nds1qco3/)。什麼是'NModelo'?名稱建議'NModelo = Backbone.Model.extend(...)',而不是視圖期望的'NModelo = new SomeModel'。 – 2014-10-28 19:40:17

+0

這有點奇怪。 NModelo ='Backbone.Model.extend()',抱歉沒有遵循命名約定。似乎@ jgillich的答案是正確的,雖然我不完全明白爲什麼。 – alejoss 2014-10-28 20:40:32

+0

你是否錯過了控制檯中小小的'▶'字形?有些瀏覽器希望您手動打開DOM節點以查看裏面的內容。 – 2014-10-28 21:28:41

回答

1

el屬性是一個DOM元素,而不是一個字符串。要獲得完整的HTML字符串,可以使用使用outerHTML屬性:

console.log(newView.el.outerHTML); 
+0

嗨,這個作品,謝謝。但是,請您詳細說明一下嗎?當我做'console.log($(anyjqueryelement).html())'時,它可以正常工作。 – alejoss 2014-10-28 20:46:07

+0

@alejoss'$ .fn.html'返回'innerHTML'屬性,就像'outerHTML',但沒有元素本身。請參閱https://developer.mozilla.org/en-US/docs/Web/API/Element – jgillich 2014-10-28 21:18:02