2012-02-08 5 views
1

は、これまでのところ、私は次のコードを持っているが、それは動作していないようですし、非同期フェッチするとき、私は知らない完成されていますJavaScript:Backbone.jsがjsonをフェッチし、モデルのコレクションにロードしますか?

var item = Backbone.Model.extend({ 
    defaults: { 
     id: 0, 
     an_id: 0, 
     strval: null, 
     th_id: 0, 
     text: null 
    }, 
    url: 'page.php', 
    options: { 
     success: function(data) { 
      alert('s: ' + dump(data)); 
      // the dump function is my way of dumping objects into a string, 
      // use console.log if you want, as I have that disabled 
     }, 
     error: function(x, t, e) { 
      alert('e: ' + t + ', ' + e); 
     } 
    } 
}); 

var coll = Backbone.Collection.extend({ 
    model: item 
}); 

var options = new Options(); 
Backbone.sync("create", coll, item.options); // 'undefined' is not an object (evaluating c.url) in backbone-min.js 

更新

私が変更されています現在のコードを元のコードに戻し、バックエンドはNew、Update、Save、Deleteの違いを知ることができます。

コレクションの作成方法はまだわかりませんcoll

+0

あなたのやりたいことによって異なります。一般的には、ビューをモデルにフックし、ビューのレンダリングメソッドを、モデル化したイベントにバインドする必要があります。フェッチしている場合は、サーバーからの応答が返されるとリセットが発生するので、リセットイベントをビューにバインドしてレンダリングします。 – kinakuta

+0

@ kinakuta、どういうことをするのか分かりません。ありがとう! –

答えて

1

Backbone.Collectionは、複数のアイテムを保持するためのものです。モデルからコレクションを "継承"しようとしているようですが、これは適切な方法ではありません。

コレクションは、モデルのセットです。 "変更"イベントをバインドすることができます。 は「追加」イベントと「削除」イベントを受信し、 サーバーからコレクションを取得し、Underscore.jsのフルスイートを使用します。メソッド。

+0

私が指摘したように、私はこのライブラリを使用し始めました。リストモデルを適切に保存し、変更をリッスンしたり、イベントを追加したり削除したり、利用可能なコレクションのリストを取得する方法についての明確な提案がありますか? –

+0

自分のコードを更新しました。アイテムのコレクションをどのように埋め込むことができますか? –

0

フェッチコールに成功ハンドラを追加できます。これを試してください:

coll.fetch({ 
     success: function() { 
      alert("success"); 
      console.log(coll.toJSON()); 
     }, 
     error: function(){ 
      alert("error")} 
    });  
+0

成功ハンドラが呼び出されますが、 'toJSON()'関数は空の文字列を表示します。 –

+0

apiコールのような音が正しく設定されていません。ブラウザの開発者ツールにアクセスして、どのようなネットワークコールが行われているかを確認し、コールが復帰しているかどうかを確認することができます。 また、API呼び出しをテストするのに便利なツールは次のとおりです(クロム用) https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CDAQFjAA&url=https%3A% 2F%2Fchrome.google.com%2Fwebstore%2Fdetail%2Fhgmloofddffdnphfgcellkdfbfbjeloo&ei = Ge4yT5LwG83LrQfy0fGsDA&usg = AFQjCNFbhSdZTBn3IVB6kaplCJIs613x_Q – Lucas

+0

私のコードを更新しました。アイテムのコレクションをポップアップするにはどうしたらいいですか? –

関連する問題