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 回答