0

こんにちは、次のような json ファイルがあります。

{
"links_1": [
    {
        "navn": "somename",
        "link": "http://www.domane.com"
    },
    {
        "navn": "somename",
        "link": "http://www.domane.com"
    },
    {
        "navn": "somename",
        "link": "http://www.domane.com"
    }
],
"links_2": [
    {
        "navn": "someothername",
        "link": "http://www.domane.com"
    },
    {
        "navn": "someothername",
        "link": "http://www.domane.com"
    },
    {
        "navn": "someothername",
        "link": "http://www.domane.com"
    }
]   
}

次に、コレクション クラスがあります。ここで、json ファイルの links_1 配列のみを含む新しいコレクションを作成したいと考えています。そして、json ファイルからの links_2 配列を含む別の新しいコレクション。

どうすればそれを達成できますか?

var col = new Collection( Collection.prototype.parse = function(response){
return response.links_1;
}

さらに説明するために、フェッチで特定のjsonデータオブジェクトを取得したいと考えています。

var col = new Collection();
col.fetch(links_1);  //  here i only want to get links_1 json data

var col2 = new Collection();
col2.fetch(links_2); //  here i only want to get links_2 json data

どんな助けでも素晴らしいでしょう。

4

1 に答える 1

1

あなたはオーバーライドしようとして正しい方向に進んparseでいますが、間違っているだけです。試す:

//define a collection class
var Link1Collection = Backbone.Collection.extend({
  parse:function(response) {
    return response.links_1
  }
});

//initialize a new instance of your collection class and fetch
var collection = new Link1Collection();
collection.fetch();

編集:インスタンスごとに抽出するフィールドを選択するには、オプションでカスタム オプションを渡すことができfetchます。オプションは に渡されますparse:

//define a collection class
var LinkCollection = Backbone.Collection.extend({
  parse:function(response, options) {
    return options.parseField ? response[options.parseField] : response;
  }
});

//initialize a new instance of your collection class and fetch
var collection = new LinkCollection();
collection.fetch({parseField:'links_1'});
于 2013-02-14T07:38:56.270 に答える