Нет, UI-Router не требует $ scope в своих контроллерах:
myapp.controller('MicrositeController', ['$state', '$mdMedia', '$mdSidenav',
function($state, $mdMedia, $mdSidenav) {
console.log("MicrositeController instantiated");
var vm = this;
vm.page_name = $state.current.data.page_name;
vm.sidenav_locked_open = false;
vm.toggleSideNav = function() {
if ($mdMedia('gt-sm')) {
vm.sidenav_locked_open = !vm.sidenav_locked_open;
} else {
$mdSidenav('left').toggle();
}
}
}]);
$stateProvider
.state('microsite', {
url: "/",
templateUrl: "microsite.tmpl.html",
//Put controller on root state
controller: 'MicrositeController as vm',
abstract: true
})
DEMO на PLNKR