2013-10-31 11 views
36

少し問題があります。私はbackbone.jsを使用しています。私は、例のように、このコードを書いた:Uncaught TypeErrorを修正する方法:未定義の 'prototype'プロパティを読み取れませんか?

<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

私はこのバグを修正。問題はコレクションを作成してモデルを作成したことでした。コレクションは作業単位としてユーザーモデルを使用しますが、このコレクションを定義したときはモデルを定義しませんでした。

このバグを回避するには、最初にモデルを定義してから、コレクションを定義します。

+4

これは私の場合にも、おかげで問題でした!私はGulpを使用しているので、誰かがそれを使用している場合は、ロードの順序を確認してください。 – Sander

+0

ええ、このエラーの原因となっているコレクションが参照していたモデルの名前を変更しました。 –

+3

神の祝福StackOverflow。そのエラーメッセージは、私をその結束に導かなかったでしょう。私はまた、肥大化する髪の毛の犠牲者です。 – ProblemsOfSumit

26

バックボーンJsはunderscore.jsおよびjQueryに依存していますので、リソースの順序を変更してみてください。 これは私のために働いた:

+0

これは正しいものです。ライブラリの輸入注文のため – kidnan1991

+1

私はbackbone.minが未定義のプロパティを読むことに不満を持っているという似た問題を抱えていました。これはコレクションの問題だと思われました。 – Syntaxsizer

関連する問題