1

これが私の簡略化されたコードです

var PlayerModel = Backbone.Model.extend();

var PlayerProfileView = Backbone.View.extend({
model : new PlayerModel({url: "http://mysite.com/api/getpalyer.php"}),
render: function(){
this.model.fetch();
}
});

システムからこのエラー メッセージが表示され続ける

キャッチされないエラー: 「url」プロパティまたは関数を指定する必要があります

コードの何が問題なのか、まったくわかりません。

4

2 に答える 2

3

Backbone#Modelコンストラクタは次のとおりです。

var Model = Backbone.Model = function(attributes, options) {

ご覧のとおり、optionsは 2 番目の引数として指定する必要があります。ここでは、URL を として渡していますattribute(this.get('url')確認してみてください)。

次のように変更します。

model : new PlayerModel(null, {url: "http://mysite.com/api/getpalyer.php"});

別物:

また、クラス定義 ( new PlayerModel({url: "http://mysite.com/api/getpalyer.php"}),) で新しいオブジェクトを宣言すると、このオブジェクトの 1 つのインスタンスがすべてのオブジェクトで共有されることになります (つまり、すべてのオブジェクトがPlayerProfileViewの 1 つのインスタンスを共有しますPlayerModel)。その背後にある理由は、クラスが作成され、クラスのプロトタイプに配置されるときに評価されるためです。

于 2013-05-13T09:39:23.570 に答える
0

を呼び出すときに渡すのでurlはなく、 の定義を入れるべきだと思います。それでも渡したい場合は、2番目のパラメーターとして指定する必要があります(指摘されているように)PlayerModelnewnewLoamhoof

var PlayerModel = Backbone.Model.extend({
  url: "http://mysite.com/api/getpalyer.php"
});
于 2013-05-13T09:46:20.093 に答える