0

fetch()に初期モデル パラメータを指定してコレクションをフェッチする方法はありますか。

明確にするために:私は属性name (文字列として) とnumbers(array)を持つモデル Human を持っています。指定された数字の配列を持つデータベース内のすべての人を見つけたいと思います。(例:配列に[123,342,4]があり、番号ごとに人々の名前を取得したい)。

モデルがhumanであることを示す Human コレクションを作成しました。そして、このように取得しても問題はありません。

humanCollection.fetch({
            success:function(model,response){
                console.log(model.toJSON().length);
                var arr=model.toJSON();
                for(var i=0;i<arr.length;i++)
                    console.log(arr[i].humanName+" ");
                console.log("Success");
            },
            error:function(model,response){
                console.log(response);
                console.log("Failure");
            }
        });

名前なしで数字だけのダミーの人間オブジェクトを作成し、後で数字をphpに渡すことを考えていますが、最初にパラメーターを配置すると.fetch()関数が機能しないようです。以下のコードでさえ機能しません。

 humanCollection.fetch({},{
                success:function(model,response){
                    console.log(model.toJSON().length);
                    var arr=model.toJSON();
                    for(var i=0;i<arr.length;i++)
                        console.log(arr[i].humanName+" ");
                    console.log("Success");
                },
                error:function(model,response){
                    console.log(response);
                    console.log("Failure");
                }
            });

何が問題なのですか?そして、与えられた数字を持つ人間のコレクションを取得するために、ダミーの人間モデルを作成することは論理的ですか? それが、特定の必要な json データを転送することを考える唯一の方法でした。

4

1 に答える 1

5

あなたは物事を台無しにしていると思います。

私が理解したように、数字Human.idsあなたが取得したいものです。

これが正しい場合、これらの数値Humanはモデルの一部であることには何の意味もありません。私はむしろそれらをに移動しますCollection

コレクションが取得したい人間をサーバー層に通知するURLフィルターパラメータを送信するようにコレクションを準備する必要があります。fetch

また、サーバーの応答に使用するヒューマンのIDを使用してフィルターパラメータを処理できるように、サーバー レイヤーを準備する必要があります。

したがって、Backbone Collection では、次のようにメソッドのdataオプションを使用できます。fetch()

humanCollection.fetch({ data: { ids: [123, 342, 4] } });

サーバーはパラメーターを解析しids、要求された人間のみを返す必要があります。

コレクションには、選択した人間のみが含まれ、名前などを尋ねることができます。

于 2012-05-21T10:32:53.310 に答える