2013-10-31 138 views
36

我有一點問題。我正在使用backbone.js。我寫了這個代碼類似例子:如何解決Uncaught TypeError:無法讀取未定義的屬性「原型」?

<script> 
$(document).ready(function() { 
    window.App = { 
     Views: {}, 
     Models: {}, 
     Collections: {} 
    } 

    App.Collections.Users = Backbone.Collection.extend({ 
     model: App.Models.User, 
     url: 'service' 
    }); 
    App.Models.User = Backbone.Model.extend({}); 

    App.Views.App = Backbone.View.extend({ 
     initialize: function() { 
      console.log(this.collection.toJSON()); 
     } 
    }); 

}); 
</script> 

比我開始服務器和瀏覽器控制檯輸入:

var x =new App.Collections.Users(); 
x.fetch() 

這如下錯誤:Uncaught TypeError: Cannot read property 'prototype' of undefined。但數據出現在迴應中。圖片中的細節。如何解決這個問題? 謝謝你的答案。 enter image description here

enter image description here

回答

62

我修正了這個錯誤。問題是我創建了集合,然後是模型。集合使用用戶模型作爲工作單元,但是當我定義此集合時,我沒有定義模型。

所以,如果你想避免這個bug,首先定義一個模型,然後定義Collection。

+4

這也是我的情況下的問題,謝謝!我正在使用Gulp,所以如果有人使用Gulp,請檢查加載順序。 – Sander

+0

是的,我改名模型被集合被引用,導致這個錯誤。 –

+3

上帝保佑StackOverflow。那個錯誤信息從來沒有讓我意識到這一點。我也是gulps縮小的受害者。 – ProblemsOfSumit

26

骨幹Js依賴於underscore.js和jQuery,嘗試重新排序資源。 這工作對我來說:

<head> 
    <title>Backbone</title> 

    <!-- Scripts Load Here-->  
    <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script> 
    <script type="text/javascript" src="js/underscore.js"></script> 
    <script type="text/javascript" src="js/backbone.js"></script> 
</head> 
+0

我看到這是一個正確的。由於圖書館進口訂單 – kidnan1991

+1

我有類似的問題,backbone.min抱怨讀取undefined的財產我懷疑這是一個收集問題,這是進口訂單問題哈哈,謝謝你們 – Syntaxsizer

相關問題