0

简单视图(精简代码):

My.View = Backbone.View.extend({
  className: 'my-view',
  initialize: function() { },
  render: function() {
    console.log('render');
    return this;
  }
});

我在另一个视图中使用它作为子视图,如下所示:

var myView = new My.View();
this.$el.append(myView.render().$el);

首先,视图有一个模板而不是类名,并且视图渲染得很好。但是,当我删除模板并添加 className 时,它​​没有正确呈现。

它只呈现 div 和正确的类名,但不执行 render 方法的日志记录。并且当我在渲染方法中向 this.$el 添加一些 html 时,它永远不会出现。任何想法为什么?

更新:

当我将自定义渲染代码放在 afterRender 方法中时,它可以工作。为什么在我的情况下无法覆盖渲染方法?

4

1 回答 1

0
this.$el.append(myView.render().el);

我将按以下方式呈现子视图。

var myView = new My.View();
this.$el.append(myView.el);
myView.render();
于 2013-07-01T05:34:18.237 回答