0

私は初めてバックボーンを使用していますが、JSONデータファイルでバックボーンを正しく機能させるのに本当に苦労しています。

私はそのようなモデルを持っています:

window.Test = Backbone.Model.extend({

defaults: {  
    id: null,
    name: null,
},

url: function() {
    return 'json/test.json/this.id';
  },

initialize: function(){  

}
});

テスト項目をクリックすると、クリックした太平洋モデルの詳細を表示しようとします。

testDetails: function (id) {


    var test = new Test();
    test.id = id;
    test.fetch({ success: function(data) { alert(JSON.stringify(data))}});
},

ただし、これは機能しません。「渡されたIDでJSON要素を取得する」と正しく言うことができません。

誰かがモデルのURLを正しく構造化してIDを持つ要素をプルする方法を教えてもらえますか?

ありがとう

4

3 に答える 3

1

ここでの問題は、JSON データ ファイルをサーバーへの呼び出しのように扱っていることです。それは機能せず、それが 404 を取得している理由です。ローカルでファイルにアクセスしている場合は、最初にファイルをロードする必要があります。.getJSON() メソッドを使用して jQuery でこれを行うことができます。または、ファイルが静的な場合は、スクリプト ブロックを使用してメモリにロードするだけです (ただし、おそらくファイルに var を割り当てる必要があります)。ほとんどの場合、jQuery を使用します。この例は、次の場所にあります。

Jquery を使用してローカル ファイルから JSON オブジェクトを取得します

これが JSON の配列である場合、配列をコレクションにロードし、「at」メソッドを使用して ID で特定の要素にアクセスできます。完全に JSON の場合は、カスタム パーサーを作成する必要があります。

于 2012-07-17T17:23:17.850 に答える
0

あなたのURLは1つに対して正しくありません。リテラル文字列'this.id'を返します。あなたはおそらくの線に沿ってもっと何かをしたいでしょう

url: function () {
    return 'json/test.json/' + this.id;
}
于 2012-07-17T13:38:44.653 に答える
0

私はあなたの機能を修正することから始めますurl

url: function() {
    return 'json/test.json/' + this.get('id');
}

あなたが今持っている方法では、モデルの に関係なく、すべての取得リクエストid/json/test.json/test.id

于 2012-07-17T13:39:50.563 に答える