backbone.js:如何绑定渲染

时间:2012-05-12 22:59:00

标签: javascript backbone.js

以下代码有效,但我希望提高可读性和可访问性,避免编写callbacks

我需要在对我的集合执行提取时呈现我的视图。

这是工作代码:

var MyView = Backbone.View.extends({

    initialize: function()
    {
        var that = this;

        MyCollection.fetch({
            success: function () {
                that.render();
            }
        });
    },

    ....

});

这里我的尝试不起作用:

var MyView = Backbone.View.extends({
    initialize: function()
    {
        MyCollection.fetch();
        MyCollection.bind('change', this.render);
    },

    ....
});

1 个答案:

答案 0 :(得分:2)

您似乎需要为context的通话设置bind。像这样:

MyCollection.bind('change', this.render, this);

Coffeescript的一个优点是它可以更清洁地处理这些事情。

ETA:change事件未在fetch上触发,仅在集合中的某个模型发生更改时触发。但是reset is。此外,您在触发提取后绑定到事件,不确定这是否是您想要的。

除此之外:似乎让我感到困惑的是,您正在利用MyCollection成员,使其轻松与class混淆。