渲染后,Marionette.js.append div清除元素

时间:2013-09-14 22:04:56

标签: jquery backbone.js marionette

Marionette.Js问题无法附加明确的div

evey我做的事情我记得在我的项目之前附加div清除

喜欢

列表  明确  项目  项目  项目

这是我的代码

var MyItemView = Backbone.Marionette.ItemView.extend({
        template: tplI ,
        className: 'item', 
        tagName : 'article', 
    });
var myCompositeView = Backbone.Marionette.CompositeView.extend({
        itemView: MyItemView , 
        itemViewContainer: "#list",
        template: tplC ,
        className : 'wikis' ,

        initialize: function () { 
            this.collection = new Collection () ;  
            this.model = new CollectionModel() ;
            this.listenTo(this.collection, "reset", this.set);
        },
        set: function ( collect ) {
            this.model.set( collect.wiki ) ; 
            this.render() ;  
        } ,
        onRender : function( evt ){
            if ( $.trim( this.$('#list').html() ) != "" ) {  
                this.$('#list').append( '<div class="clear"></div>' ) ; 
            }
        },
        onClose :function() { $('#list').
            this.$el.height( 0 ) ; 
        }
    }); 

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

找一个临时解决方案

第1566行

// Internal method to loop through each item in the
  // collection view and show it
  showCollection: function(){
    var ItemView;
    this.collection.each(function(item, index){
      ItemView = this.getItemView(item);
      this.addItemView(item, ItemView, index);
    }, this);
    this.triggerMethod("renderCollection", this);
  },

然后

集合视图中的

initialize: function () { 
        //console.log( 'collectionView' ) ; 
        this.on( 'renderCollection' , this.collectionrendered ) ;
    }, 
collectionrendered: function(){
        this.$el.find( this. itemViewContainer ).append( '<div class="clear"></div>' ) ;
        console.log('collectionrendered') ;
    }