Backbone从视图中的模型获取属性

时间:2013-11-07 12:40:27

标签: javascript jquery backbone.js

我需要帮助才能尝试使用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')

然而这也不起作用!

1 个答案:

答案 0 :(得分:0)

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

render: function () {
    var test = new thisCollection;
    test.fetch({
        success: function(collection, response) {
            console.log(test.get('club_url'))
        }
    });
    return this;
}