В самом главном контроллере слушайте изменения УРЛ страницы и крутите наверх:
$rootScope.$on('$routeChangeSuccess', function(e, current, previous) {
window.scrollTo(0, 0);
});
UPD:
Если вы хотите сделать пагинацию на сайте вида mysite.ru/1, то в роутах у вас должно быть примерно следующее:
$routeProvider
.when('/:pageNumber?', {
templateUrl: 'partials/home.html',
controller: 'HomeCtrl'
})
В контроллере присоединяйте
$routeParams, чтобы считывать переменные из роута, а так же присоединяйте
paginationService, у него есть метод
setCurrentPage, который задает текущую страницу:
watchesStore.controller('WatchesStoreController', function($routeParams, paginationService) {
var pageNumber = $routeParams.pageNumber || 1;
pageNumber = parseInt(page, 10);
var paginationId = 'watchesStore'; // setCurrentPage требует instanceId — айдишку экземпляра пагинатора, чтобы знать, какой блок, собственно, пагинировать
paginationService.setCurrentPage(paginationId, pageNumber);
});
А в HTML-коде у вас нужно еще айдишку экземпляра пагинации (мы его назвали
watchesStore) вставить в директиву:
<dir-pagination-controls boundary-links="true" on-page-change="pageChangeHandler(newPageNumber)" template-url="dirPagination.tpl.html" pagination-id="watchesStore"></dir-pagination-controls>
UPD2:
А, только что заметил, что у вас уже есть роут для айдишки часов:
$routeProvider
.when('/:watchId', {
templateUrl: 'partials/watch-detail.html',
controller: 'WatchDetailCtrl'
})
Значит, для пагинации используйте не
mysite.ru/1, а обычные GET-параметры
mysite.ru/?page=1. В результате в контроллере страничку будете получать так:
watchesStore.controller('WatchesStoreController', function($location, paginationService) {
var params = $location.search();
var pageNumber = params.page || 1;
pageNumber = parseInt(page, 10);
...
});