The init() method can be used to set up, for example, internal variables or subcontrols of a composite control.
If the init() method is implemented, OpenUI5 invokes the method for each control instance directly after the constructor method.
Note:
Values that are given in the
constructormethod are not yet available in theinitmethod. This is to prevent that a control only works when the values are set initially, but not when the values are changed.
The init method is considered a private method that must be called by the OpenUI5 core only.
SomeControl.extend("myorg.mylib.MyControl", {
// ...
init() {
SomeControl.prototype.init.apply(this, arguments);
this._bSearchHasBeenTriggered = false;
this._oSearchButton = new Button(this.getId() + "-searchBtn", {
text: "Search"
});
},
// ...
});
Note:
Any method in your inheriting control overrides methods with the same name in the superclass. If, for example, your control implements the
init()method, theinit()of the superclass will no longer be executed. The control is then no longer properly initialized and this typically causes an error. To avoid breaking the control, call the superclass method.Consider also that the superclass might implement the method later on, or removes its own method implementation because it is not needed anymore. While lifecycle methods and hooks such as
init,onBeforeRendering,onAfterRendering, andexitare generally available fromsap.ui.core.Control, we recommend that you check for the existence of other superclass methods before calling them, for exampleSomeControl.prototype.someSuperMethod?.apply(this, arguments).
Related Information