SideMenu Push vs Replace UI Router

Hi can someone please specify how to achieve push transition and how replace transition in side menu example.
I saw that playlist is push and others are replace, but I cannot understand difference between them.

My UI Router config contains this state:

      .state('app.category', {
        url: '/category/:categoryId',
        cache: false,
        views: {
          'menuContent': {
            templateUrl: 'templates/category.html',
            controller: 'CategoryCtrl',
            resolve: {
              resolvedCategory: function ($q, $stateParams, categoryService) {
                var deferred = $q.defer();
                categoryService.getCategoryById($stateParams.categoryId).then((cat) => {
                }).catch((err) => {
                return deferred.promise;

But when I try to navigate manually to:

It opens normally as expected by - replace
But anytime i try to navigate to same address programmatically ->
$state.go(‘app.category’, {categoryId: cat.objectId});

its pushing view :frowning: I have no idea why there is difference

you have to declare params at the top level, and include all the params you want. Like so:

  .state('somestate', {
    url: '/endpoint/:id',
    params: { data: null, id: null },
    views: {
        main: {
          templateUrl: 'tpl.html',
          controller: function($stateParams) {
             console.log($stateParams) // { id: 1, data: { foo: 'bar' }}

  $state.go('somestate', { id: 1, data: { foo: 'bar' }});

But what if i dont have any params…my question was pretty much generic:

  • How to tell ionic that I want to push “view controller” or that I want to replace it…

So issue is with Resolve within ui-router, I already placed issue in github…but if there is someone who found workround this issue - IE how to change state with resolve using side menu animation, not by pushing views! please let me know