Show TOC

Typed Views and ControllersLocate this document in the navigation structure

More complex use cases may require a more formal way to define views and controllers. For this, typed views and controllers are used.

To create a controller that is a new type of its own, you need to write a boilerplate code and declare the functions of the new prototype:

/* boilerplate code for typed Controller */{modName:"sap.hcm.AddressController", type:"controller"}); // declaring a special type of module   
sap.hcm.AddressController = function () { // the constructor
   sap.ui.core.mvc.Controller.apply(this, arguments);
};"sap.ui.core.mvc.Controller"); // this is currently required, as the Controller is not loaded by default
sap.hcm.AddressController.prototype =; // chain the prototypes
/* end of boilerplate code for typed Controller */

// to avoid the above we could in the future offer it behind a simple call to:
// sap.ui.defineController("sap.hcm.Address");

sap.hcm.AddressController.prototype.onInit = function() {
   // modify control tree - this is the regular lifecycle hook


// implement an event handler in the Controller
sap.hcm.AddressController.prototype.doSomething = function() {
   alert("Hello World");