marionette-rails 0.9.1 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,4 @@
1
- // Backbone.Marionette v0.9.1
1
+ // Backbone.Marionette v0.9.2
2
2
  //
3
3
  // Copyright (C)2012 Derick Bailey, Muted Solutions, LLC
4
4
  // Distributed Under MIT License
@@ -279,6 +279,7 @@ Marionette.CollectionView = Marionette.View.extend({
279
279
  // and events
280
280
  triggerBeforeRender: function(){
281
281
  if (this.beforeRender) { this.beforeRender(); }
282
+ this.trigger("before:render", this);
282
283
  this.trigger("collection:before:render", this);
283
284
  },
284
285
 
@@ -286,6 +287,7 @@ Marionette.CollectionView = Marionette.View.extend({
286
287
  // events
287
288
  triggerRendered: function(){
288
289
  if (this.onRender) { this.onRender(); }
290
+ this.trigger("render", this);
289
291
  this.trigger("collection:rendered", this);
290
292
  },
291
293
 
@@ -503,6 +505,8 @@ Marionette.CompositeView = Marionette.CollectionView.extend({
503
505
  render: function(){
504
506
  var that = this;
505
507
 
508
+ this.resetItemViewContainer();
509
+
506
510
  var html = this.renderModel();
507
511
  this.$el.html(html);
508
512
  this.trigger("composite:model:rendered");
@@ -527,6 +531,39 @@ Marionette.CompositeView = Marionette.CollectionView.extend({
527
531
 
528
532
  var template = this.getTemplate();
529
533
  return Marionette.Renderer.render(template, data);
534
+ },
535
+
536
+ // Appends the `el` of itemView instances to the specified
537
+ // `itemViewContainer` (a jQuery selector). Override this method to
538
+ // provide custom logic of how the child item view instances have their
539
+ // HTML appended to the composite view instance.
540
+ appendHtml: function(cv, iv){
541
+ var $container = this.getItemViewContainer(cv, this.itemViewContainer);
542
+ $container.append(iv.el);
543
+ },
544
+
545
+ // Internal method to ensure an `$itemViewContainer` exists, for the
546
+ // `appendHtml` method to use.
547
+ getItemViewContainer: function(containerView, itemViewContainer){
548
+ var container;
549
+ if ("$itemViewContainer" in containerView){
550
+ container = containerView.$itemViewContainer;
551
+ } else {
552
+ if (containerView.itemViewContainer){
553
+ container = containerView.$(itemViewContainer);
554
+ } else {
555
+ container = containerView.$el;
556
+ }
557
+ containerView.$itemViewContainer = container;
558
+ }
559
+ return container;
560
+ },
561
+
562
+ // Internal method to reset the `$itemViewContainer` on render
563
+ resetItemViewContainer: function(){
564
+ if (this.$itemViewContainer){
565
+ delete this.$itemViewContainer;
566
+ }
530
567
  }
531
568
  });
532
569
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marionette-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.9.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-20 00:00:00.000000000 Z
12
+ date: 2012-06-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails