2013-09-01 5 views
6

Ist es möglich, die letzte ItemView von einem Backbone CompositeView zu bekommen? Ich habe eine Menge Dokumentation gefunden, um das letzte Modell in einer Sammlung zu erhalten, aber nicht die letzte Ansicht in einer Sammlung von Ansichten.Erhalten Sie die letzte Artikelansicht von CompositeView in Marionette

Der Grund, warum ich dies tun möchte, ist, damit ich die letzte Zeile in einer Tabelle etwas anders darstellen kann.

Das folgende ist der Code, den ich gerade verwende, es funktioniert gut, aber es wäre weniger "hacky", wenn ich die richtige ItemView von der CompositeView, die es erstellt und gerendert bekommen konnte. Es verwendet jQuery, um den gesamten Teil des DOM zu durchsuchen, der von CompositeView für das letzte Element enthalten ist, und manipuliert dann dieses Element.

B.ListControl.View = Backbone.Marionette.CompositeView.extend({ 
    itemView: ..., 
    itemViewContainer: ..., 
    template: ..., 
    // ON RENDER 
    onRender: function(){ 
     // Add button to the last element in the list 
     this.$el.find('div:last').text('Custome stuff goes here'); 
    } 
}); 

Vielen Dank!

Antwort

10

Wenn Ihre Sammlung geholt Sie letzte Element auf diese Weise erhalten können:

this.children.findByIndex(this.children.length - 1); 

Babysitter Plugin viele nützliche Methoden für Sie bestimmt:

findByModel, findByCollection, findByCustom, findByIndex, findByCid

+0

Super, vielen Dank! –

+0

Backbone.BabySitter-Dokumentation zum Suchen von Ansichten von einem "ChildViewContainer" (welcher '.children' eine Instanz von ist): https://github.com/marionettejs/backbone.babysitter#retrieving-views – alxndr

+0

n.b. "CompositeView" von Marionette hat eine Eigenschaft namens ".childViewContainer", aber es hat nichts damit zu tun: Marionette erwartet, dass es eine jQuery-Selektor-Zeichenkette ist, die verwendet wird, um zu bestimmen, wo Instanzen ihrer "childView" -Klasse platziert werden sollen. https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.compositeview.md#compositeviews-childviewcontainer – alxndr

Verwandte Themen