Perform setup for the controller, setup events and watcher(s)
function setupTabsController () {
    ctrl.selectedIndex = ctrl.selectedIndex || 0;
    compileTemplate();
    configureWatchers();
    bindEvents();
    $mdTheming($element);
    $mdUtil.nextTick(function () {
      // Note that the element references need to be updated, because certain "browsers"
      // (IE/Edge) lose them and start throwing "Invalid calling object" errors, when we
      // compile the element contents down in `compileElement`.
      elements = getElements();
      updateHeightFromContent();
      adjustOffset();
      updateInkBarStyles();
      ctrl.tabs[ ctrl.selectedIndex ] && ctrl.tabs[ ctrl.selectedIndex ].scope.select();
      loaded = true;
      updatePagination();
    });
  }