Backbone Marionette: templateHelpers und itemViewOptions
Ich habe ein problem mit Rückgrat Marionette und ItemView-rendering.
Ich brauche einen Wert aus einer Zusammengesetzten Ansicht zu jedem Element Anzeigen.
Der Wert enthalten ist, korrekt im options-array der Element-Ansicht, allerdings kann ich ihn über die templateHelpers Methode.
Also habe ich versucht, um es als Wert meiner Ansicht, aber wenn ich render das array gibt es eine "undefined" - Wert.
Das Composite View
var TableView = Backbone.Marionette.CompositeView.extend({
....
itemViewOptions: {
foo: "bar",
},
Der Item View
var RowView = Backbone.Marionette.ItemView.extend({
template: RowTemplate,
tagName: "tr",
foo: "",
initialize: function(){
this.foo = this.options.foo;
},
templateHelpers: {
foo: function(){
return this.foo;
}
},
Was ich falsch mache? Wie kann ich den Zugriff auf den Wert und Holen Sie es an der Vorlage? Danke.
InformationsquelleAutor Ingro | 2012-08-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der
templateHelpers
Funktionen, diethis
Variablen ist das Objekt, das war retured aus derserializeData
Methode. Um dieitemViewOptions
in dertemplateHelpers
, dann müssen Sie zum ändern derserializeData
Methode auf das Element anzeigen:Diese sollten Ihre Daten in der
templateHelpers
.InformationsquelleAutor Derick Bailey
Einfachere Lösung verwenden Bau
templateHelpers: function(){return {}}
Beispiel:und für die Verwendung mit Daten:
Docs: https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.view.md#object-or-function-as-templatehelpers
something()
?InformationsquelleAutor evgeniy.klemin
Ich denke, das ist einfacher
Ihrer Ansicht
der Vorteil von diesem ist, wenn Sie haben andere Dinge, die Sie wollen, um Werte übergeben, können Sie nehmen es einfach von Optionen, zum Beispiel in einem meiner Ansichten habe ich
für eine Sammlung von widgets.
InformationsquelleAutor user254694
Wenn Sie sind dem Aufruf der super-Methode als Derick vorgeschlagen
Sicher sein, rufen Sie es auf eine geeignete Klasse wie
CompositeView
stattItemView
, denn seit Marionette 2.2SerializeData
fn wurde geändert, um pass on Logik, um bestimmte Funktionen und nicht alle sind in allen KlassenOder alternativ, wenn Sie mit CoffeeScript, können Sie rufen Sie
data = super(arguments)
InformationsquelleAutor Dejan Cancarevic