backbone学习笔记

太折腾了,这事一定得记下来。

 

在backbone中,假设有10组人(GroupView),每个组又有很多人(PersonView),这样需要循环展示GroupView,同时需要在GroupView中调用PersonView的render方法来渲染人员页面片段的生成。代码如下:

 

 

that.$(".groupList").append(persionView.render().$el.html())
 

 

 

上述代码看起来是没问题的,但是问题出现了:

 

在PersonView中定义的event事件怎么也不会产生。也就是在PersonView中定义的视图事件怎么都没用。

后来把代码改了,如下所示:

 

that.$(".groupList").append(persionView.render().$el)
 请注意上述代码去掉了最后的html()方法。其道理是不言自明的。如果把子视图生成的dom对象(此对象已经注册了各种event处理)换成对应的html纯文本代码append到父视图上,虽然展示是没问题,但事件全丢了。

你可能感兴趣的:(backbone)