2012-05-12 13 views
3

Backbone.jsを使用して、modelまたはcollectionインスタンスでfetchメソッドを呼び出すときに、クライアント部分のJsonファイルからデータをフェッチしたいとします。このようになり、次のJSONファイルへの私のコレクション(MyCol)時点でバックボーン:クライアント部分のjsonファイルからデータを取得する

url property

[ 
    {title: "_My trip to Bali", src: "bali-trip.jpg"}, 
    {title: "_The flight home", src: "long-flight-oofta.jpg"}, 
    {title: "_Uploading pix", src: "too-many-pics.jpg"} 
] 

私は、次のコマンドを実行します。

myCol = new MyCol(); 
myCol.fetch(); // the Request Method GET is ok 
myCol.toJSON(); // [] 
+2

さらに詳しい情報が必要です:1)JSONファイルのURLはどれですか? 2)バックボーンリクエストのURLはどれですか? 3)あなたを示す_Network_コンソールとは何ですか? 4)何かmyCol.fetch({success:function(){console.log( "SUCCESS");}、error:function(){console.log( "ERROR");} 'あなたを表示していますか? – fguillen

答えて

2

@fguillenは、右のあなたができると言っています単純にsuccess and error callbacksを使用してコードをデバッグしてください。 文字列である必要があるメンバーのため、とにかくエラーがjson形式です。

はこれを試してみて、それが動作します:

[ 
    {"title": "_My trip to Bali", "src": "bali-trip.jpg"}, 
    {"title": "_The flight home", "src": "long-flight-oofta.jpg"}, 
    {"title": "_Uploading pix", "src": "too-many-pics.jpg"} 
] 
4

それがフェッチ覚えているが、同期機能ではありません。 fetchメソッドはサーバーへの要求を開始し、イベントまたはコールバックを介して応答に警告します。

fetchメソッドhttp://documentcloud.github.com/backbone/#Model-fetchのバックボーンのドキュメントを参照してください。

代わりにこのようなことを試してください。

myCol = new MyCol(); 
myCol.fetch({ 
    success: function() { //This is fired if the request is succesful 
     myCol.toJSON(); 
    } 
}); 

それとも

myCol = new MyCol(); 
myCol.on('change', function() { //This is fired if the model's attributes change 
    myCol.toJSON(); 
}); 
myCol.fetch(); 

または言及@roberkulesとして

、あなたがこれを行うことができるように、返します jqXHRを取得。

+3

私は 'myCol.fetch()。done(function(){myCol.toJSON();});' – roberkules

+0

.done()が私のために働いた –

関連する問題