title: Preventing ui-router state controller reload after changing state with params
body: <p>The following angular + ui-router app:</p>
  
  <pre><code>var myapp = angular.module('myapp', ["ui.router"])
  myapp.config(function($stateProvider, $urlRouterProvider){
  
    // For any unmatched url, send to /route1
    $urlRouterProvider.otherwise("/route1");
  
    $stateProvider
      .state("route1", {
          url: "/route1?x",
          templateUrl: "route1.html",
          controller: function($scope, $state){
            console.log("route 1");
            $scope.setUrlParam = function(p) {
              console.log("set x", p);
              $state.go('route1', {x: p}, {notify: false, location:'replace'})
            }
          }
      })
      .state('route2', {
          parent: "route1",
          url: "/route2",
          templateUrl: "route2.html",
          controller: function($scope){
            console.log("route 2");
            $scope.items = ["A", "List", "Of", "Items"];
          }
      })
  
  })
  </code></pre>
  
  <p>...has two states, <code>route1</code> and <code>route2</code> which is a child of <code>route1</code>.</p>
  
  <ul>
  <li>Plunker: <a href="http://plnkr.co/edit/3P9ZE1HvSgK24B1MrIf4?p=preview" rel="nofollow">http://plnkr.co/edit/3P9ZE1HvSgK24B1MrIf4?p=preview</a></li>
  <li>Click on "Live Preview" and open the console panel in your dev tools.</li>
  </ul>
  
  <p>Clicking on "Goto route 1" and "Goto route 2" will only trigger the run of Controller 2 when changing the state to <code>route2</code> (Open the console to view) as expected.</p>
  
  <p>However, my app needs to change some url params in <code>route1</code> on various occasions (for example, when a user drags the map, we would like to change the url to reflect the coordinates in the url), but nothing else should happen.  Checking out <a href="http://angular-ui.github.io/ui-router/site/#/api/ui.router.state.$state" rel="nofollow">ui-router docs</a>, the following is used to change the url params:</p>
  
  <pre><code>$state.go('route1', {x: p}, {notify: false, location:'replace'})
  </code></pre>
  
  <p>This works great (for changing the url).</p>
  
  <p>However, after using this technique, using <code>$state.go('route2')</code> triggers <code>route1</code>'s controller reload!  Try clicking on "set x to 123" and then on "goto route 2" on the demo.</p>
  
  <p>How can I prevent the reloading <code>route1</code>'s controller?</p>
  
  <p>Any help would be appreciated!</p>
  
  <p>Versions Used:</p>
  
  <ul>
  <li>angular 1.2.4</li>
  <li>ui-router 0.2.15</li>
  </ul>