0

我需要帮助来尝试使用backbone.js从我的模型中获取属性

以下是我到目前为止所尝试的。我连接到一个 REST URL 并拉回 json 中的数据。我现在想在视图中显示一些数据。但是,当我尝试打印/控制台时,club_url我得到一个未定义的错误。如果我打印出test对象本身,我可以看到对象中的值attributes section

有人可以告诉我哪里出错了吗?

(function ($) {
    var Model = Backbone.Model.extend({
        urlRoot: '/api/test/',
        initialize: function () {
            this.club_url = this.club_url
        }
    });
    var thisCollection = Backbone.Collection.extend({
        urlRoot: '/api/test/',
        model: Model
    });
    var PanelView = Backbone.View.extend({
        el: '#reward_view',
        initialize: function () {
            _.bindAll(this, 'render');
            this.collection = new thisCollection();
            this.collection.bind('add', this.appendItem);
            this.render();
        },
        render: function () {
            var test = new thisCollection;
            test.fetch();
            console.log(test.get('club_url'))
            return this;
        }
    });
    var listView = new PanelView();
})(jQuery);

作为我尝试的另一个测试是在视图中初始化这样的东西

        this.model = new Model()
        this.model.fetch()

但后来在渲染函数中我这样做了:

this.model.get('club_url')

然而这也不起作用!

4

1 回答 1

0

数据的获取是异步操作。所以,我想你应该等待一个事件才能得到club_url. 即类似的东西:

render: function () {
    var test = new thisCollection;
    test.fetch({
        success: function(collection, response) {
            console.log(test.get('club_url'))
        }
    });
    return this;
}
于 2013-11-07T12:52:04.827 回答