Ich möchte nur die Entscheidungen hinter Backbone.Marionette Sicht auf UI-Elemente verstehen. Wenn ein Marionette.View auf einem vorhandenen DOM-Element, wie das Instanziieren:Verfügbarkeit von UI-Elementen in Marionette.View
view = new Marionette.ItemView({
el: "#element",
ui : {
whatever : "#whatever"
}
});
Ich bin in der Lage innerhalb view.initialize
view.$el
, die jQuery-Selektor zugreifen, so weit so gut. Wenn ich jedoch versuche, auf view.ui.whatever
zuzugreifen, habe ich nur Zugriff auf den Selektor, dh die Zeichenfolge "#whatever" anstelle des eigentlichen 0quellselektors $("#whatever")
.
Der Grund dafür ist, dass nur render
und nicht vor initialize
aufgerufen wird.
Ich würde gerne wissen, ob Sie denken, dass dieses Verhalten Logik ist und warum?
Ich frage nur im Fall der Anfügen der Ansicht an eine bestehende el
, wenn die Ansicht mit einer Vorlage erstellt wird, verstehe ich, warum die Bindung in render()
ist.
Dies ist eine Randnotiz - Sie werden auch das Verhalten erfahren, wenn Sie auf die Schaltfläche Zurück klicken, um zur Seite zurückzukehren. Der Aufruf von 'this.bindUIElements()' direkt vor der Verwendung des ui-Elements löste das Problem – Phil