1

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

当对我的集合执行 fetch 时,我需要呈现我的视图。

这里的工作代码:

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);
    },

    ....
});
4

1 回答 1

2

看起来您需要将context呼叫设置为bind. 像这样:

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

Coffeescript 的一大优点是它可以更干净地处理这些事情。

ETA:change事件不会在 上触发fetch,它仅在集合中的模型之一发生更改时触发。reset,虽然。此外,您在触发提取后绑定到事件,不确定这是否是您想要的。

旁白:让我感到困惑的是,您将MyCollection成员大写,使其很容易与class.

于 2012-05-12T23:09:33.417 回答