Backbone.js 主干线“;at();返回未定义,导致Firebug

Backbone.js 主干线“;at();返回未定义,导致Firebug,backbone.js,Backbone.js,我正在尝试通过一个屏幕演示如何使用Backbone.js和REST从数据库返回结果。我的RESTful服务(至少我认为它是RESTful的——REST对我来说是新的)正在提供您想要的JSON数据。在我尝试使用at()访问数据的最后一步之前,一切似乎都很正常。这是我的密码 这是我的脊梁骨: (function() { window.App = { Models: {}, Collections: {}, Views: {},

我正在尝试通过一个屏幕演示如何使用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');

我做错了什么?

at方法检索集合中特定索引处的元素

因此,如果要获取位置1023处的元素,则集合中需要1023项。你可能没有


您拥有并设置为1023的id与该集合中的索引无关。

Oh。嗯。我误解了教程。是的
mains.at(0).get('FName')
返回Eulalia。如果这是集合中的第一个元素,则是正确的:)