I'd just like to understand the decisions behind Backbone.Marionette's view regarding UI elements. When instantiating a Marionette.View on an existing DOM element, like this:
view = new Marionette.ItemView({
el: "#element",
ui : {
whatever : "#whatever"
}
});
I am able to access view.$el
, the jquery selector inside view.initialize
, so far so good.
However, when I try to access view.ui.whatever
, I only have access to the selector, ie the string "#whatever" instead of the actual $("#whatever")
jquery selector.
The reason for this is because Marionette.View.bindUIElements()
is only called on render
and not before initialize
.
I would like to know if you think this behaviour is logic and why?
I am only asking in the case of attaching of the view to an existing el
, if the view is created with a template, I do understand why the binding is in render()
.