【发布时间】:2011-09-13 10:42:42
【问题描述】:
我希望我的视图在首次创建时呈现自身,因此我在 initialize: 函数中调用 this.render();,如下所示(删除了一些代码):
var MyView = Backbone.View.extend({
el: $("#mydiv"),
initialize: function() {
this.render();
}
...
在render: 函数中,我将循环遍历一个子集合,并附加每个子元素的渲染视图:
render: function() {
this.model.somecollection.forEach(function(c) {
var view = new ChildView({ model: c });
this.el.append(view.render().el); //*****
});
return this;
},
我遇到的问题是渲染函数中对this 的引用(标有星号)设置为window 而不是MyView 对象,这会导致错误。
我假设我调用 render 不正确(当前为 this.render(); )。我应该怎么做才能保留this 上下文?
【问题讨论】:
-
在 for 循环外将其作为
that安全。 -
@ZeissS-Doh!我很愚蠢 - 添加这个作为答案,我会接受它。