0

Backbone.js と REST を使用してデータベースから結果を返す方法について、スクリーンキャストをフォローしようとしています。私の RESTful サービス (少なくとも RESTful だと思います。REST は私にとって初めてのことです) は、あなたが望むように JSON データを提供しています。を使用してデータにアクセスしようとすると、最後のステップまですべてが正常に機能しているように見えますat()。これが私のコードです。

これは私のバックボーンです:

(function() {
    window.App = {
        Models: {},
        Collections: {},
        Views: {},
        Router: {}  
    };

    window.template = function(id) {
        return _.template( $('#' + id).html());
    };

    var vent = _.extend({}, Backbone.Events);

    App.Router = Backbone.Router.extend({
        routes: {
            '' : 'index',
            '*other' : 'other'
        },
        index: function() {

        },
        other: function() {

        }
    });


    App.Models.Main = Backbone.Model.extend({
        defaults : {
            FName: ''
        }
    });

    App.Collections.Mains = Backbone.Collection.extend({
        model: App.Models.Main,
        url: '../leads/main_contact'
    });

    new App.Router;
    Backbone.history.start();
})();

Jeffrey Way のスクリーンキャストで使用されている Firebug コンソールで、次のように入力します。

mains = new App.Collections.Mains();
mains.fetch();
mains.toJSON();

それはうまくいきます。Firebug を使用して、そこに適切なデータがあることを確認できます。ここに私の結果があります:

[Object { id="1023",  timestamp="2012-05-16 08:09:30",  FName="Eulàlia",  more...},...

しかし、ID が 1023 のオブジェクトにアクセスしようとすると、「未定義」となります。私はこれをします:

mains.at(1023).get('FName');

私は何を間違っていますか?

4

1 に答える 1

1

このatメソッドは、コレクション内の特定のインデックスにある要素を取得します。

したがって、位置 1023 の要素を取得する場合は、コレクションに 1023 個のアイテムが必要です。あなたがおそらく持っていないもの。

あなたが持っていて1023に設定されているIDは、そのコレクションのインデックスとは何の関係もありません。

于 2013-01-03T22:36:05.400 に答える