2012-12-05 74 views
0

業餘這個問題可能是,但沒有人可以用一隻手。剛剛從包裝中脫穎而出,開始了Hello World的示例,但似乎無法啓動並運行。有人可能會告訴我爲什麼我沒有看到這個結果?骨幹入門

(function($){ 

var ListView = Backbone.View.extend({ 
    el: $(body), //attaches this.el to an existing element 

    initialize: function(){ 
     _.bindAll(this, 'render'); //fixes loss of context for this within elements 
     this.render(); //not all views are self-rendering. This is one. 
    }, 

    render: function(){ 
     $(this.el).html("<ul><li>Hello World!</li></ul>"); 
    } 
}); 
var listVew = new ListView(); 


})(jQuery); 

HTML

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title> Hello Backbone </title> 
</head> 
<body> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> 
<script src="http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js"></script> 
<script src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.6/underscore-min.js"></script> 
<script src="http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js"></script> 

<script src="backbone.js" type="text/javascript"></script> 

</body> 
</html> 
+1

您應該可以通過使用'el:'body','將'el'設置爲'body'。你不需要把它包裝在一個jQuery對象中。 – Jack

回答

2
  • 我想你的代碼中的jsfiddle和得到這個錯誤:Uncaught ReferenceError: body is not defined
    • 使用字符串'body'爲您的視圖的el選擇

此作品:http://jsfiddle.net/PeGW6/

另請注意,您正在使用一個非常非常舊的骨幹版本。升級到最新版本。

+0

嘗試了您提到的一切,但無濟於事。我不相信,但很可能是錯誤的,它不是代碼解僱的問題。將一些警報投入到他們反應的匿名函數內部的代碼的第一位。另外,html()清除腳本調用的問題並不是問題的根源,因爲我最初開始使用append。 – sonobenissimo

+0

所以在你的'render'把'console.log(「render:」,this.el,this。$ el)',這將確認文檔是否準備好。如果'this。$ el'是'[]',那麼你就會知道這是問題所在。如果您將代碼發佈到jsfiddle中,我們可以幫助您在那裏進行調試。 –

+0

好吧,所以取得了一些進展。想象出這個問題的一大塊是由於我沒有在el身體上引用引號引起的:$(body)。當我將我的代碼發佈到jsfiddle中時,它並不完美,但是無論我的計算機是什麼原因,我都沒有看到正在更新的正文中的文本。我試着警告this.el和這個。$ el,但是它什麼都沒輸出。有點困惑,但爲什麼它可以在jsfiddle上工作,但不是我的合作伙伴 – sonobenissimo