code: function(){
          var helperParameters = this.parameters;
          var linkTextPath = helperParameters.options.linkTextPath;
          var paths = getResolvedPaths(helperParameters);
          var length = paths.length;
          var path, i, normalizedPath;
  
          if (linkTextPath) {
            normalizedPath = getNormalizedPath(linkTextPath, helperParameters);
            this.registerObserver(normalizedPath.root, normalizedPath.path, this, this.rerender);
          }
  
          for(i=0; i < length; i++) {
            path = paths[i];
            if (null === path) {
              // A literal value was provided, not a path, so nothing to observe.
              continue;
            }
  
            normalizedPath = getNormalizedPath(path, helperParameters);
            this.registerObserver(normalizedPath.root, normalizedPath.path, this, this._paramsChanged);
          }
  
          var queryParamsObject = this.queryParamsObject;
          if (queryParamsObject) {
            var values = queryParamsObject.values;
  
            // Install observers for all of the hash options
            // provided in the (query-params) subexpression.
            for (var k in values) {
              if (!values.hasOwnProperty(k)) { continue; }
  
              if (queryParamsObject.types[k] === 'ID') {
                normalizedPath = getNormalizedPath(values[k], helperParameters);
                this.registerObserver(normalizedPath.root, normalizedPath.path, this, this._paramsChanged);
              }
            }
          }
        }
docs: This is called to setup observers that will trigger a rerender.
  
  @private
  @method _setupPathObservers
  @since 1.3.0