docs: Restructure table of contents to provide a more streamlined experience. (#38353)

PR Close #38353
This commit is contained in:
David Shevitz 2020-08-05 21:23:22 +00:00 committed by Joey Perrott
parent f5a148b1b7
commit 71acf9dd49
2 changed files with 486 additions and 478 deletions

View File

@ -48,54 +48,13 @@
{ {
"url": "docs", "url": "docs",
"title": "Introduction", "title": "Introduction",
"tooltip": "Introduction to the Angular documentation", "tooltip": "Welcome to the Angular documentation set.",
"hidden": false "hidden": false
}, },
{ {
"title": "Getting Started", "title": "Getting Started",
"tooltip": "Set up your environment and learn basic concepts", "tooltip": "Set up your environment and learn basic concepts",
"children": [ "children": [
{
"url": "guide/setup-local",
"title": "Setup",
"tooltip": "Setting up for local development with the Angular CLI."
},
{
"title": "Angular Concepts",
"tooltip": "Introduction to basic concepts for Angular applications.",
"children": [
{
"url": "guide/architecture",
"title": "Intro to Basic Concepts",
"tooltip": "Basic building blocks of Angular applications."
},
{
"url": "guide/architecture-modules",
"title": "Intro to Modules",
"tooltip": "About NgModules."
},
{
"url": "guide/architecture-components",
"title": "Intro to Components",
"tooltip": "About Components, Templates, and Views."
},
{
"url": "guide/architecture-services",
"title": "Intro to Services and DI",
"tooltip": "About services and dependency injection."
},
{
"url": "guide/architecture-next-steps",
"title": "Next Steps",
"tooltip": "Beyond the basics."
}
]
},
{
"url": "guide/glossary",
"title": "Angular Glossary",
"tooltip": "Brief definitions of the most important words in the Angular vocabulary."
},
{ {
"title": "Try it", "title": "Try it",
"tooltip": "Examine and work with a ready-made sample app, with no setup.", "tooltip": "Examine and work with a ready-made sample app, with no setup.",
@ -128,68 +87,64 @@
] ]
}, },
{ {
"title": "Tutorial: Tour of Heroes", "url": "guide/setup-local",
"tooltip": "The Tour of Heroes app is used as a reference point in many Angular examples.", "title": "Setup",
"children": [ "tooltip": "Setting up for local development with the Angular CLI."
{
"url": "tutorial",
"title": "Introduction",
"tooltip": "Introduction to the Tour of Heroes app and tutorial"
},
{
"url": "tutorial/toh-pt0",
"title": "Create a Project",
"tooltip": "Creating the application shell"
},
{
"url": "tutorial/toh-pt1",
"title": "1. The Hero Editor",
"tooltip": "Part 1: Build a simple editor"
},
{
"url": "tutorial/toh-pt2",
"title": "2. Display a List",
"tooltip": "Part 2: Build a master/detail page with a list of heroes."
},
{
"url": "tutorial/toh-pt3",
"title": "3. Create a Feature Component",
"tooltip": "Part 3: Refactor the master/detail views into separate components."
},
{
"url": "tutorial/toh-pt4",
"title": "4. Add Services",
"tooltip": "Part 4: Create a reusable service to manage hero data."
},
{
"url": "tutorial/toh-pt5",
"title": "5. Add In-app Navigation",
"tooltip": "Part 5: Add the Angular router and navigate among the views."
},
{
"url": "tutorial/toh-pt6",
"title": "6. Get Data from a Server",
"tooltip": "Part 6: Use HTTP to retrieve and save hero data."
}
]
} }
] ]
}, },
{ {
"title": "Fundamentals", "title": "Main Concepts",
"tooltip": "The fundamentals of Angular", "tooltip": "Learn the concepts essential to becoming a proficient Angular developer.",
"children": [ "children": [
{ {
"title": "Components & Templates", "title": "Components",
"tooltip": "Building dynamic views with data binding", "tooltip": "Building dynamic views with data binding",
"children": [ "children": [
{ {
"url": "guide/displaying-data", "url": "guide/displaying-data",
"title": "Displaying Data", "title": "Data binding",
"tooltip": "Property binding helps show app data in the UI." "tooltip": "Property binding helps show app data in the UI."
}, },
{ {
"title": "Template Syntax", "url": "guide/user-input",
"title": "User Input",
"tooltip": "User input triggers DOM events. Angular listens to those events with event bindings that funnel updated values back into your app's components and models."
},
{
"url": "guide/pipes",
"title": "Pipes",
"tooltip": "Pipes transform displayed values within a template."
},
{
"url": "guide/lifecycle-hooks",
"title": "Component Lifecycle",
"tooltip": "Angular calls lifecycle hook methods on directives and components as it creates, changes, and destroys them."
},
{
"url": "guide/component-interaction",
"title": "Component Interaction",
"tooltip": "Share information between different directives and components."
},
{
"url": "guide/component-styles",
"title": "Component Styles",
"tooltip": "Add CSS styles that are specific to a component."
},
{
"url": "guide/dynamic-component-loader",
"title": "Dynamic Components",
"tooltip": "Load components dynamically."
},
{
"url": "guide/elements",
"title": "Angular Elements",
"tooltip": "Convert components to Custom Elements."
}
]
},
{
"title": "Templates",
"tooltip": "Syntax to use in templates for binding, expressions, and directives.", "tooltip": "Syntax to use in templates for binding, expressions, and directives.",
"children": [ "children": [
{ {
@ -232,11 +187,6 @@
"title": "Two-way binding", "title": "Two-way binding",
"tooltip": "Introductory guide to sharing data between a class and a template." "tooltip": "Introductory guide to sharing data between a class and a template."
}, },
{
"url": "guide/built-in-directives",
"title": "Built-in directives",
"tooltip": "Introductory guide to some of the most popular built-in directives."
},
{ {
"url": "guide/template-reference-variables", "url": "guide/template-reference-variables",
"title": "Template reference variables", "title": "Template reference variables",
@ -260,9 +210,13 @@
] ]
}, },
{ {
"url": "guide/user-input", "title": "Directives",
"title": "User Input", "tooltip": "Control the behavior of elements and the layout of your pages with directives.",
"tooltip": "User input triggers DOM events. Angular listens to those events with event bindings that funnel updated values back into your app's components and models." "children": [
{
"url": "guide/built-in-directives",
"title": "Built-in directives",
"tooltip": "Introductory guide to some of the most popular built-in directives."
}, },
{ {
"url": "guide/attribute-directives", "url": "guide/attribute-directives",
@ -273,164 +227,6 @@
"url": "guide/structural-directives", "url": "guide/structural-directives",
"title": "Structural Directives", "title": "Structural Directives",
"tooltip": "Structural directives manipulate the layout of the page." "tooltip": "Structural directives manipulate the layout of the page."
},
{
"url": "guide/pipes",
"title": "Pipes",
"tooltip": "Pipes transform displayed values within a template."
},
{
"url": "guide/lifecycle-hooks",
"title": "Hook into the Component Lifecycle",
"tooltip": "Angular calls lifecycle hook methods on directives and components as it creates, changes, and destroys them."
},
{
"url": "guide/component-interaction",
"title": "Component Interaction",
"tooltip": "Share information between different directives and components."
},
{
"url": "guide/component-styles",
"title": "Component Styles",
"tooltip": "Add CSS styles that are specific to a component."
},
{
"url": "guide/dynamic-component-loader",
"title": "Dynamic Components",
"tooltip": "Load components dynamically."
},
{
"url": "guide/elements",
"title": "Angular Elements",
"tooltip": "Convert components to Custom Elements."
}
]
},
{
"title": "Forms for User Input",
"tooltip": "Forms creates a cohesive, effective, and compelling data entry experience.",
"children": [
{
"url": "guide/forms-overview",
"title": "Introduction",
"tooltip": "An Angular form coordinates a set of data-bound user controls, tracks changes, validates input, and presents errors."
},
{
"url": "guide/reactive-forms",
"title": "Reactive Forms",
"tooltip": "Create a reactive form using FormBuilder, groups, and arrays."
},
{
"url": "guide/form-validation",
"title": "Validate form input",
"tooltip": "Validate user's form entries."
},
{
"url": "guide/dynamic-form",
"title": "Building Dynamic Forms",
"tooltip": "Create dynamic form templates using FormGroup."
}
]
},
{
"title": "Observables & RxJS",
"tooltip": "Using observables for message passing in Angular.",
"children": [
{
"url": "guide/observables",
"title": "Observables Overview",
"tooltip": "Using observables to pass values synchronously or asynchronously."
},
{
"url": "guide/rx-library",
"title": "The RxJS Library",
"tooltip": "A library for reactive programming using observables to compose asynchronous or callback-based code."
},
{
"url": "guide/observables-in-angular",
"title": "Observables in Angular",
"tooltip": "How Angular subsystems use and expect observables."
},
{
"url": "guide/practical-observable-usage",
"title": "Practical Usage",
"tooltip": "Domains in which observables are particularly useful."
},
{
"url": "guide/comparing-observables",
"title": "Compare to Other Techniques",
"tooltip": "How observables compare to promises and other message passing techniques."
}
]
},
{
"title": "NgModules",
"tooltip": "NgModules.",
"children": [
{
"url": "guide/ngmodules",
"title": "NgModules Introduction",
"tooltip": "Use NgModules to make your apps efficient."
},
{
"url": "guide/ngmodule-vs-jsmodule",
"title": "JS Modules vs NgModules",
"tooltip": "Differentiate between JavaScript modules and NgModules."
},
{
"url": "guide/bootstrapping",
"title": "Launching Apps with a Root Module",
"tooltip": "Tell Angular how to construct and bootstrap the app in the root \"AppModule\"."
},
{
"url": "guide/frequent-ngmodules",
"title": "Frequently Used NgModules",
"tooltip": "Introduction to the most frequently used NgModules."
},
{
"url": "guide/module-types",
"title": "Types of Feature Modules",
"tooltip": "Description of the different types of feature modules."
},
{
"url": "guide/entry-components",
"title": "Entry Components",
"tooltip": "All about entry components in Angular."
},
{
"url": "guide/feature-modules",
"title": "Feature Modules",
"tooltip": "Create feature modules to organize your code."
},
{
"url": "guide/providers",
"title": "Providing Dependencies",
"tooltip": "Providing dependencies to NgModules."
},
{
"url": "guide/singleton-services",
"title": "Singleton Services",
"tooltip": "Creating singleton services."
},
{
"url": "guide/lazy-loading-ngmodules",
"title": "Lazy Loading Feature Modules",
"tooltip": "Lazy load modules to speed up your apps."
},
{
"url": "guide/sharing-ngmodules",
"title": "Sharing NgModules",
"tooltip": "Share NgModules to streamline your apps."
},
{
"url": "guide/ngmodule-api",
"title": "NgModule API",
"tooltip": "Understand the details of NgModules."
},
{
"url": "guide/ngmodule-faq",
"title": "NgModule FAQs",
"tooltip": "Answers to frequently asked questions about NgModules."
} }
] ]
}, },
@ -464,28 +260,54 @@
"tooltip": "Use the injection tree to find parent components." "tooltip": "Use the injection tree to find parent components."
} }
] ]
}
]
}, },
{ {
"url": "guide/http", "title": "Built-in Features",
"title": "Access Servers over HTTP", "tooltip": "Learn how to add Angular's built-in features to add functionality to your applications.",
"tooltip": "Use HTTP to talk to a remote server." "children": [
},
{ {
"url": "guide/router", "url": "guide/router",
"title": "Routing & Navigation", "title": "Routing & Navigation",
"tooltip": "Build in-app navigation among views using the Angular Router." "tooltip": "Build in-app navigation among views using the Angular Router."
}, },
{ {
"url": "guide/security", "title": "Forms",
"title": "Security", "tooltip": "Forms creates a cohesive, effective, and compelling data entry experience.",
"tooltip": "Developing for content security in Angular applications." "children": [
{
"url": "guide/forms-overview",
"title": "Introduction",
"tooltip": "An Angular form coordinates a set of data-bound user controls, tracks changes, validates input, and presents errors."
},
{
"url": "guide/reactive-forms",
"title": "Reactive Forms",
"tooltip": "Create a reactive form using FormBuilder, groups, and arrays."
},
{
"url": "guide/form-validation",
"title": "Validate form input",
"tooltip": "Validate user's form entries."
},
{
"url": "guide/dynamic-form",
"title": "Building Dynamic Forms",
"tooltip": "Create dynamic form templates using FormGroup."
} }
] ]
}, },
{ {
"title": "Techniques", "url": "guide/http",
"tooltip": "Techniques for putting Angular to work in your environment", "title": "HTTP Client",
"children": [ "tooltip": "Use HTTP to talk to a remote server."
},
{
"url": "guide/i18n",
"title": "Internationalization (i18n)",
"tooltip": "Translate the app's template text into multiple languages."
},
{ {
"title": "Animations", "title": "Animations",
"tooltip": "Enhance the user experience with animation.", "tooltip": "Enhance the user experience with animation.",
@ -518,14 +340,25 @@
] ]
}, },
{ {
"url": "guide/i18n", "title": "Schematics",
"title": "Internationalization (i18n)", "tooltip": "Understanding schematics.",
"tooltip": "Translate the app's template text into multiple languages." "children": [
{
"url": "guide/schematics",
"title": "Schematics Overview",
"tooltip": "Extending CLI generation capabilities."
}, },
{ {
"url": "guide/accessibility", "url": "guide/schematics-authoring",
"title": "Accessibility", "title": "Authoring Schematics",
"tooltip": "Design apps to be accessible to all users." "tooltip": "Understand the structure of a schematic."
},
{
"url": "guide/schematics-for-libraries",
"title": "Schematics for Libraries",
"tooltip": "Use schematics to integrate your library with the Angular CLI."
}
]
}, },
{ {
"title": "Service Workers & PWA", "title": "Service Workers & PWA",
@ -562,53 +395,27 @@
"tooltip": "Configuring service worker caching behavior." "tooltip": "Configuring service worker caching behavior."
} }
] ]
},
{
"url": "guide/web-worker",
"title": "Web Workers",
"tooltip": "Using web workers for background processing."
},
{
"url": "guide/universal",
"title": "Server-side Rendering",
"tooltip": "Render HTML server-side with Angular Universal."
} }
] ]
}, },
{ {
"title": "Dev Workflow", "title": "Best Practices",
"tooltip": "Build, testing, and deployment information.", "tooltip": "Learn how to build robust, scalable applications.",
"children": [ "children": [
{ {
"title": "AOT Compiler", "url": "guide/security",
"tooltip": "Understanding ahead-of-time compilation.", "title": "Security",
"children": [ "tooltip": "Developing for content security in Angular applications."
{
"url": "guide/aot-compiler",
"title": "Ahead-of-Time Compilation",
"tooltip": "Learn why and how to use the Ahead-of-Time (AOT) compiler."
}, },
{ {
"url": "guide/angular-compiler-options", "url": "guide/accessibility",
"title": "Angular Compiler Options", "title": "Accessibility",
"tooltip": "Configuring AOT compilation." "tooltip": "Design apps to be accessible to all users."
}, },
{ {
"url": "guide/aot-metadata-errors", "url": "guide/updating",
"title": "AOT Metadata Errors", "title": "Keeping Up-to-Date",
"tooltip": "Troubleshooting AOT compilation." "tooltip": "Information about updating Angular applications and libraries to the latest version."
},
{
"url": "guide/template-typecheck",
"title": "Template Type-checking",
"tooltip": "Template type-checking in Angular."
}
]
},
{
"url": "guide/build",
"title": "Building & Serving",
"tooltip": "Building and serving Angular apps."
}, },
{ {
"title": "Testing", "title": "Testing",
@ -661,89 +468,48 @@
} }
] ]
}, },
{
"title": "Dev Workflow",
"tooltip": "Build, and deployment information.",
"children": [
{ {
"url": "guide/deployment", "url": "guide/deployment",
"title": "Deployment", "title": "Deploying applications",
"tooltip": "Learn how to deploy your Angular app." "tooltip": "Learn how to deploy your Angular app."
}, },
{ {
"title": "Dev Tool Integration", "title": "AOT Compiler",
"tooltip": "Integrate with your development environment and tools.", "tooltip": "Understanding ahead-of-time compilation.",
"children": [ "children": [
{ {
"url": "guide/language-service", "url": "guide/aot-compiler",
"title": "Language Service", "title": "Ahead-of-Time Compilation",
"tooltip": "Use Angular Language Service to speed up dev time." "tooltip": "Learn why and how to use the Ahead-of-Time (AOT) compiler."
}, },
{ {
"url": "guide/visual-studio-2015", "url": "guide/angular-compiler-options",
"title": "Visual Studio 2015", "title": "Angular Compiler Options",
"tooltip": "Using Angular with Visual Studio 2015.", "tooltip": "Configuring AOT compilation."
"hidden": true },
} {
] "url": "guide/aot-metadata-errors",
"title": "AOT Metadata Errors",
"tooltip": "Troubleshooting AOT compilation."
},
{
"url": "guide/template-typecheck",
"title": "Template Type-checking",
"tooltip": "Template type-checking in Angular."
} }
] ]
}, },
{ {
"title": "Configuration", "url": "guide/build",
"tooltip": "Workspace and project file structure and configuration.", "title": "Building & Serving",
"children": [ "tooltip": "Building and serving Angular apps."
{
"url": "guide/file-structure",
"title": "Project File Structure",
"tooltip": "How your Angular workspace looks on your filesystem."
},
{
"url": "guide/workspace-config",
"title": "Workspace Configuration",
"tooltip": "The \"angular.json\" file contains workspace and project configuration defaults for Angular CLI commands."
},
{
"url": "guide/npm-packages",
"title": "npm Dependencies",
"tooltip": "Description of npm packages required at development time and at runtime."
},
{
"url": "guide/typescript-configuration",
"title": "TypeScript Configuration",
"tooltip": "TypeScript configuration for Angular developers."
},
{
"url": "guide/browser-support",
"title": "Browser Support",
"tooltip": "Browser support and polyfills guide."
},
{
"url": "guide/strict-mode",
"title": "Strict mode",
"tooltip": "Reference documentation for Angular's strict mode."
} }
] ]
}, },
{
"title": "Extending Angular",
"tooltip": "Working with libraries and extending the CLI.",
"children": [
{
"title": "Angular Libraries",
"tooltip": "Extending Angular with shared libraries.",
"children": [
{
"url": "guide/libraries",
"title": "Libraries Overview",
"tooltip": "Understand how and when to use or create libraries."
},
{
"url": "guide/using-libraries",
"title": "Using Published Libraries",
"tooltip": "Integrate published libraries into an app."
},
{
"url": "guide/creating-libraries",
"title": "Creating Libraries",
"tooltip": "Extend Angular by creating, publishing, and using your own libraries."
},
{ {
"url": "guide/lightweight-injection-tokens", "url": "guide/lightweight-injection-tokens",
"title": "Lightweight Injection Tokens for Libraries", "title": "Lightweight Injection Tokens for Libraries",
@ -752,30 +518,23 @@
] ]
}, },
{ {
"title": "Schematics", "title": "Angular Tools",
"tooltip": "Understanding schematics.", "tooltip": "Tools to help you build your Angular applications.",
"children": [ "children": [
{
"url": "guide/schematics",
"title": "Schematics Overview",
"tooltip": "Extending CLI generation capabilities."
},
{
"url": "guide/schematics-authoring",
"title": "Authoring Schematics",
"tooltip": "Understand the structure of a schematic."
},
{
"url": "guide/schematics-for-libraries",
"title": "Schematics for Libraries",
"tooltip": "Use schematics to integrate your library with the Angular CLI."
}
]
},
{ {
"url": "guide/cli-builder", "url": "guide/cli-builder",
"title": "CLI Builders", "title": "CLI Builders",
"tooltip": "Using builders to customize Angular CLI." "tooltip": "Using builders to customize Angular CLI."
},
{
"url": "guide/universal",
"title": "Server-side Rendering",
"tooltip": "Render HTML server-side with Angular Universal."
},
{
"url": "guide/language-service",
"title": "Language Service",
"tooltip": "Use Angular Language Service to speed up dev time."
} }
] ]
}, },
@ -803,6 +562,78 @@
"url": "guide/forms", "url": "guide/forms",
"title": "Building a Template-driven Form", "title": "Building a Template-driven Form",
"tooltip": "Create a template-driven form using directives and Angular template syntax." "tooltip": "Create a template-driven form using directives and Angular template syntax."
},
{
"title": "Tutorial: Tour of Heroes",
"tooltip": "The Tour of Heroes app is used as a reference point in many Angular examples.",
"children": [
{
"url": "tutorial",
"title": "Introduction",
"tooltip": "Introduction to the Tour of Heroes app and tutorial"
},
{
"url": "tutorial/toh-pt0",
"title": "Create a Project",
"tooltip": "Creating the application shell"
},
{
"url": "tutorial/toh-pt1",
"title": "1. The Hero Editor",
"tooltip": "Part 1: Build a simple editor"
},
{
"url": "tutorial/toh-pt2",
"title": "2. Display a List",
"tooltip": "Part 2: Build a master/detail page with a list of heroes."
},
{
"url": "tutorial/toh-pt3",
"title": "3. Create a Feature Component",
"tooltip": "Part 3: Refactor the master/detail views into separate components."
},
{
"url": "tutorial/toh-pt4",
"title": "4. Add Services",
"tooltip": "Part 4: Create a reusable service to manage hero data."
},
{
"url": "tutorial/toh-pt5",
"title": "5. Add In-app Navigation",
"tooltip": "Part 5: Add the Angular router and navigate among the views."
},
{
"url": "tutorial/toh-pt6",
"title": "6. Get Data from a Server",
"tooltip": "Part 6: Use HTTP to retrieve and save hero data."
}
]
},
{
"url": "guide/web-worker",
"title": "Web Workers",
"tooltip": "Using web workers for background processing."
},
{
"title": "Angular Libraries",
"tooltip": "Extending Angular with shared libraries.",
"children": [
{
"url": "guide/libraries",
"title": "Libraries Overview",
"tooltip": "Understand how and when to use or create libraries."
},
{
"url": "guide/using-libraries",
"title": "Using Published Libraries",
"tooltip": "Integrate published libraries into an app."
},
{
"url": "guide/creating-libraries",
"title": "Creating Libraries",
"tooltip": "Extend Angular by creating, publishing, and using your own libraries."
}
]
} }
] ]
}, },
@ -810,11 +641,6 @@
"title": "Release Information", "title": "Release Information",
"tooltip": "Angular release practices, updating, and upgrading.", "tooltip": "Angular release practices, updating, and upgrading.",
"children": [ "children": [
{
"url": "guide/updating",
"title": "Keeping Up-to-Date",
"tooltip": "Information about updating Angular applications and libraries to the latest version."
},
{ {
"url": "guide/releases", "url": "guide/releases",
"title": "Release Practices", "title": "Release Practices",
@ -911,23 +737,181 @@
] ]
}, },
{ {
"title": "Angular Style and Usage", "title": "Reference",
"tooltip": "Summaries of Angular syntax, coding, and doc styles.", "tooltip": "Reference guides for Angular features and tools.",
"children": [ "children": [
{ {
"url": "guide/cheatsheet", "title": "Conceptual Reference",
"title": "Quick Reference", "tooltip": "Reference documentation that explains how Angular features work.",
"tooltip": "A quick guide to common Angular coding techniques." "children": [
{
"title": "Angular Concepts",
"tooltip": "Introduction to basic concepts for Angular applications.",
"children": [
{
"url": "guide/architecture",
"title": "Intro to Basic Concepts",
"tooltip": "Basic building blocks of Angular applications."
}, },
{ {
"url": "guide/styleguide", "url": "guide/architecture-modules",
"title": "Coding Style Guide", "title": "Intro to Modules",
"tooltip": "Guidelines for writing Angular code." "tooltip": "About NgModules."
}, },
{ {
"url": "guide/docs-style-guide", "url": "guide/architecture-components",
"title": "Documentation Style Guide", "title": "Intro to Components",
"tooltip": "Style guide for documentation authors." "tooltip": "About Components, Templates, and Views."
},
{
"url": "guide/architecture-services",
"title": "Intro to Services and DI",
"tooltip": "About services and dependency injection."
},
{
"url": "guide/architecture-next-steps",
"title": "Next Steps",
"tooltip": "Beyond the basics."
}
]
},
{
"title": "Workspace and project structure",
"tooltip": "Workspace and project file structure and configuration.",
"children": [
{
"url": "guide/file-structure",
"title": "Project File Structure",
"tooltip": "How your Angular workspace looks on your filesystem."
},
{
"url": "guide/workspace-config",
"title": "Workspace Configuration",
"tooltip": "The \"angular.json\" file contains workspace and project configuration defaults for Angular CLI commands."
},
{
"url": "guide/npm-packages",
"title": "npm Dependencies",
"tooltip": "Description of npm packages required at development time and at runtime."
},
{
"url": "guide/typescript-configuration",
"title": "TypeScript Configuration",
"tooltip": "TypeScript configuration for Angular developers."
},
{
"url": "guide/browser-support",
"title": "Browser Support",
"tooltip": "Browser support and polyfills guide."
},
{
"url": "guide/strict-mode",
"title": "Strict mode",
"tooltip": "Reference documentation for Angular's strict mode."
}
]
},
{
"title": "NgModules",
"tooltip": "NgModules.",
"children": [
{
"url": "guide/ngmodules",
"title": "NgModules Introduction",
"tooltip": "Use NgModules to make your apps efficient."
},
{
"url": "guide/ngmodule-vs-jsmodule",
"title": "JS Modules vs NgModules",
"tooltip": "Differentiate between JavaScript modules and NgModules."
},
{
"url": "guide/bootstrapping",
"title": "Launching Apps with a Root Module",
"tooltip": "Tell Angular how to construct and bootstrap the app in the root \"AppModule\"."
},
{
"url": "guide/frequent-ngmodules",
"title": "Frequently Used NgModules",
"tooltip": "Introduction to the most frequently used NgModules."
},
{
"url": "guide/module-types",
"title": "Types of Feature Modules",
"tooltip": "Description of the different types of feature modules."
},
{
"url": "guide/entry-components",
"title": "Entry Components",
"tooltip": "All about entry components in Angular."
},
{
"url": "guide/feature-modules",
"title": "Feature Modules",
"tooltip": "Create feature modules to organize your code."
},
{
"url": "guide/providers",
"title": "Providing Dependencies",
"tooltip": "Providing dependencies to NgModules."
},
{
"url": "guide/singleton-services",
"title": "Singleton Services",
"tooltip": "Creating singleton services."
},
{
"url": "guide/lazy-loading-ngmodules",
"title": "Lazy Loading Feature Modules",
"tooltip": "Lazy load modules to speed up your apps."
},
{
"url": "guide/sharing-ngmodules",
"title": "Sharing NgModules",
"tooltip": "Share NgModules to streamline your apps."
},
{
"url": "guide/ngmodule-api",
"title": "NgModule API",
"tooltip": "Understand the details of NgModules."
},
{
"url": "guide/ngmodule-faq",
"title": "NgModule FAQs",
"tooltip": "Answers to frequently asked questions about NgModules."
}
]
},
{
"title": "Observables & RxJS",
"tooltip": "Using observables for message passing in Angular.",
"children": [
{
"url": "guide/observables",
"title": "Observables Overview",
"tooltip": "Using observables to pass values synchronously or asynchronously."
},
{
"url": "guide/rx-library",
"title": "The RxJS Library",
"tooltip": "A library for reactive programming using observables to compose asynchronous or callback-based code."
},
{
"url": "guide/observables-in-angular",
"title": "Observables in Angular",
"tooltip": "How Angular subsystems use and expect observables."
},
{
"url": "guide/practical-observable-usage",
"title": "Practical Usage",
"tooltip": "Domains in which observables are particularly useful."
},
{
"url": "guide/comparing-observables",
"title": "Compare to Other Techniques",
"tooltip": "How observables compare to promises and other message passing techniques."
}
]
} }
] ]
}, },
@ -951,6 +935,29 @@
"title": "API Reference", "title": "API Reference",
"tooltip": "Details of the Angular packages, classes, interfaces, and other types.", "tooltip": "Details of the Angular packages, classes, interfaces, and other types.",
"url": "api" "url": "api"
},
{
"url": "guide/glossary",
"title": "Angular Glossary",
"tooltip": "Brief definitions of the most important words in the Angular vocabulary."
},
{
"title": "Angular Style and Usage",
"tooltip": "Summaries of Angular syntax, coding, and doc styles.",
"children": [
{
"url": "guide/cheatsheet",
"title": "Quick Reference",
"tooltip": "A quick guide to common Angular coding techniques."
},
{
"url": "guide/styleguide",
"title": "Coding Style Guide",
"tooltip": "Guidelines for writing Angular code."
}
]
}
]
} }
], ],
"Footer": [ "Footer": [

View File

@ -99,10 +99,11 @@ describe('site App', function() {
describe('scrolling to the top', () => { describe('scrolling to the top', () => {
it('should scroll to the top when navigating to another page', () => { it('should scroll to the top when navigating to another page', () => {
page.navigateTo('guide/security'); page.navigateTo('guide/security');
page.scrollTo('bottom'); page.scrollTo('bottom');
expect(page.getScrollTop()).toBeGreaterThan(0); expect(page.getScrollTop()).toBeGreaterThan(0);
// Navigate to Reference section, then check
// Find the navigation item that has the text "api"
page.click(page.getNavItem(/reference/i));
page.click(page.getNavItem(/api/i)); page.click(page.getNavItem(/api/i));
expect(page.locationPath()).toBe('/api'); expect(page.locationPath()).toBe('/api');
expect(page.getScrollTop()).toBe(0); expect(page.getScrollTop()).toBe(0);