What is the difference between:
$routeParams and $stateParams and when to use what?
Both are from different router modules. You can use anyone in your application.
If you use ngRoute module, then you should use $routeParams ( https://docs.angularjs.org/api/ngRoute ) . This is provided by Angular team. It has only one ng-view. you can not do nested views functionality.
If you use ui-router module, then you should use $stateParams ( https://github.com/angular-ui/ui-router ). This is from contributed module. It has number of additional functionality compare than ngRoute . It supports nested view concepts. you can specify multiple ui-view
See more: http://www.amasik.com/angularjs-ngroute-vs-ui-router/