Backbone return this;

本文介绍如何在Backbone.js中通过return this实现视图的复用及预渲染功能,展示了具体的代码示例,并对比了使用与不使用return this的区别。
var ItemView = Backbone.View.extend({
  events: {},
  render: function(){
    this.$el.html(this.model.toJSON());
    return this;
  }
});

这里return this;的作用:可以让我们把ItemView作为子view重复使用。我们也可以利用它在呈现之前做预渲染(pre-render)。
重复使用ItemView的例子:

var ListView = Backbone.View.extend({
  render: function(){

    // 假定items是model暴露的需要呈现的list
    var items = this.model.get('items');

    // 使用Underscore的_each方法遍历每个item
    _.each(items, function(item){

      // 创建一个新的ItemView实例,传入指定的model项
      var itemView = new ItemView({ model: item });

      // itemView的DOM元素渲染之后追加到ListView的el中。
      // 这里'return this'可帮助在render之后访问到它的输出("el")
      this.$el.append( itemView.render().el );
    }, this);
  }

如果不使用return this; ListView需要这样写:

var ListView = Backbone.View.extend({
  render: function(){
    var items = this.model.get('items');    
    _.each(items, function(item){
      var itemView = new ItemView({ model: item });      
      itemView.render();
      this.$el.append(itemView.el );
    }, this);
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值