diff options
| author | Jeff Cross | 2013-11-06 10:19:36 -0800 | 
|---|---|---|
| committer | Jeff Cross | 2013-11-06 10:24:22 -0800 | 
| commit | eb51b024c9b77527420014cdf7dbb292b5b9dd6b (patch) | |
| tree | bd1d2a737582ab29d837e117187d10302941af95 /docs/src/templates | |
| parent | 56d09177997c4571bdd7209898599670f3cfac9a (diff) | |
| download | angular.js-eb51b024c9b77527420014cdf7dbb292b5b9dd6b.tar.bz2 | |
fix(docModuleComponents): implement anchor scroll when content added
When navigating to URLs such as
docs.angularjs.org/api/ng#filter, the browser
was not able to navigate to the named anchor,
"filter," because the anchor did not yet exist
in the DOM.
This fix uses the $anchorScroll service
to automatically scroll to the right place when
the content has been added to the page.
Fixes #4703
Diffstat (limited to 'docs/src/templates')
| -rw-r--r-- | docs/src/templates/js/docs.js | 38 | 
1 files changed, 20 insertions, 18 deletions
| diff --git a/docs/src/templates/js/docs.js b/docs/src/templates/js/docs.js index 70c5c888..5a99ef46 100644 --- a/docs/src/templates/js/docs.js +++ b/docs/src/templates/js/docs.js @@ -207,28 +207,29 @@ docsApp.directive.sourceEdit = function(getEmbeddedTemplate) {    }  }; -docsApp.directive.docModuleComponents = ['sections', function(sections) { +docsApp.directive.docModuleComponents = function() {    return {      template: '  <div class="component-breakdown">' +                '    <h2>Module Components</h2>' + -              '    <div ng-repeat="(key, section) in components">' +  -              '      <h3 class="component-heading" id="{{ section.type }}">{{ section.title }}</h3>' +  -              '      <table class="definition-table">' +  -              '        <tr>' +  -              '          <th>Name</th>' +  -              '          <th>Description</th>' +  -              '        </tr>' +  -              '        <tr ng-repeat="component in section.components">' +  -              '          <td><a ng-href="{{ component.url }}">{{ component.shortName }}</a></td>' +  -              '          <td>{{ component.shortDescription }}</td>' +  -              '        </tr>' +  -              '      </table>' +  +              '    <div ng-repeat="(key, section) in components">' + +              '      <h3 class="component-heading" id="{{ section.type }}">{{ section.title }}</h3>' + +              '      <table class="definition-table">' + +              '        <tr>' + +              '          <th>Name</th>' + +              '          <th>Description</th>' + +              '        </tr>' + +              '        <tr ng-repeat="component in section.components">' + +              '          <td><a ng-href="{{ component.url }}">{{ component.shortName }}</a></td>' + +              '          <td>{{ component.shortDescription }}</td>' + +              '        </tr>' + +              '      </table>' +                '    </div>' +                '  </div>',      scope : {        module : '@docModuleComponents'      }, -    controller : ['$scope', function($scope) { +    controller : ['$scope', '$anchorScroll', '$timeout', 'sections', +      function($scope, $anchorScroll, $timeout, sections) {        var validTypes = ['property','function','directive','service','object','filter'];        var components = {};        angular.forEach(sections.api, function(item) { @@ -239,16 +240,17 @@ docsApp.directive.docModuleComponents = ['sections', function(sections) {              components[type] = components[type] || {                title : type,                type : type, -              components : []  +              components : []              };              components[type].components.push(item);            }          }        });        $scope.components = components; +      $timeout($anchorScroll, 0, false);      }]    }; -}] +};  docsApp.directive.docTutorialNav = function(templateMerge) {    var pages = [ @@ -411,7 +413,7 @@ docsApp.serviceFactory.prepareDefaultAppModule = function() {      var moduleName = 'App';      return {        module : moduleName, -      script : "angular.module('" + moduleName + "', [" +  +      script : "angular.module('" + moduleName + "', [" +            (deps.length ? "'" + deps.join("','") + "'" : "") + "]);\n\n"      };    }; @@ -709,7 +711,7 @@ docsApp.controller.DocsController = function($scope, $location, $window, $cookie      error: 'Error Reference'    }; -  populateComponentsList();  +  populateComponentsList();    $scope.$watch(function docsPathWatch() {return $location.path(); }, function docsPathWatchAction(path) {      // ignore non-doc links which are used in examples | 
