|
| 1 | +```txt |
| 2 | +docs/ |
| 3 | +└── tutorials/ |
| 4 | + └── angular/ |
| 5 | + ├── index.mdx |
| 6 | + ├── 01-introduction/ |
| 7 | + │ ├── what-is-angular.mdx |
| 8 | + │ ├── angular-features.mdx |
| 9 | + │ ├── angular-vs-react.mdx |
| 10 | + │ ├── angular-vs-vue.mdx |
| 11 | + │ ├── angular-architecture.mdx |
| 12 | + │ └── how-angular-works.mdx |
| 13 | + ├── 02-environment-setup/ |
| 14 | + │ ├── install-nodejs-and-npm.mdx |
| 15 | + │ ├── install-angular-cli.mdx |
| 16 | + │ ├── setup-vscode-for-angular.mdx |
| 17 | + │ ├── angular-playground.mdx |
| 18 | + │ └── verify-installation.mdx |
| 19 | + ├── 03-first-angular-application/ |
| 20 | + │ ├── create-angular-project.mdx |
| 21 | + │ ├── angular-project-structure.mdx |
| 22 | + │ ├── run-development-server.mdx |
| 23 | + │ ├── angular-application-bootstrap.mdx |
| 24 | + │ ├── angular-configuration-files.mdx |
| 25 | + │ └── build-and-serve.mdx |
| 26 | + ├── 04-components/ |
| 27 | + │ ├── component-fundamentals.mdx |
| 28 | + │ ├── create-components.mdx |
| 29 | + │ ├── component-metadata.mdx |
| 30 | + │ ├── standalone-components.mdx |
| 31 | + │ ├── component-lifecycle.mdx |
| 32 | + │ ├── component-communication.mdx |
| 33 | + │ ├── input-and-output.mdx |
| 34 | + │ ├── model-inputs-and-two-way-binding.mdx |
| 35 | + │ └── reusable-components.mdx |
| 36 | + ├── 05-templates-and-data-binding/ |
| 37 | + │ ├── template-syntax.mdx |
| 38 | + │ ├── interpolation.mdx |
| 39 | + │ ├── property-binding.mdx |
| 40 | + │ ├── event-binding.mdx |
| 41 | + │ ├── two-way-data-binding.mdx |
| 42 | + │ ├── template-reference-variables.mdx |
| 43 | + │ ├── attribute-and-class-binding.mdx |
| 44 | + │ └── template-expression-best-practices.mdx |
| 45 | + ├── 06-control-flow-and-directives/ |
| 46 | + │ ├── built-in-control-flow.mdx |
| 47 | + │ ├── conditional-rendering.mdx |
| 48 | + │ ├── loops-and-track.mdx |
| 49 | + │ ├── switch-control-flow.mdx |
| 50 | + │ ├── built-in-directives.mdx |
| 51 | + │ ├── custom-attribute-directives.mdx |
| 52 | + │ ├── structural-directives-and-legacy-syntax.mdx |
| 53 | + │ └── custom-structural-directives.mdx |
| 54 | + ├── 07-signals-and-reactivity/ |
| 55 | + │ ├── signals-fundamentals.mdx |
| 56 | + │ ├── signal-and-value-updates.mdx |
| 57 | + │ ├── computed-signals.mdx |
| 58 | + │ ├── effects-and-side-effects.mdx |
| 59 | + │ ├── linked-signals.mdx |
| 60 | + │ ├── signal-inputs.mdx |
| 61 | + │ ├── signals-and-change-detection.mdx |
| 62 | + │ └── signals-vs-rxjs.mdx |
| 63 | + ├── 08-typescript-for-angular/ |
| 64 | + │ ├── typescript-fundamentals.mdx |
| 65 | + │ ├── interfaces-and-type-aliases.mdx |
| 66 | + │ ├── generics-and-utility-types.mdx |
| 67 | + │ ├── strict-type-checking.mdx |
| 68 | + │ ├── typed-components.mdx |
| 69 | + │ └── typing-events-and-forms.mdx |
| 70 | + ├── 09-services-and-dependency-injection/ |
| 71 | + │ ├── service-fundamentals.mdx |
| 72 | + │ ├── create-angular-services.mdx |
| 73 | + │ ├── dependency-injection-overview.mdx |
| 74 | + │ ├── inject-function.mdx |
| 75 | + │ ├── injection-tokens.mdx |
| 76 | + │ ├── provider-scopes.mdx |
| 77 | + │ ├── hierarchical-injectors.mdx |
| 78 | + │ └── service-design-patterns.mdx |
| 79 | + ├── 10-routing-and-navigation/ |
| 80 | + │ ├── router-setup.mdx |
| 81 | + │ ├── route-configuration.mdx |
| 82 | + │ ├── router-outlet-and-links.mdx |
| 83 | + │ ├── route-parameters.mdx |
| 84 | + │ ├── query-parameters.mdx |
| 85 | + │ ├── child-and-nested-routes.mdx |
| 86 | + │ ├── route-guards.mdx |
| 87 | + │ ├── resolvers-and-data-loading.mdx |
| 88 | + │ ├── lazy-loading.mdx |
| 89 | + │ ├── route-level-providers.mdx |
| 90 | + │ └── navigation-and-error-routes.mdx |
| 91 | + ├── 11-forms-and-validation/ |
| 92 | + │ ├── forms-overview.mdx |
| 93 | + │ ├── template-driven-forms.mdx |
| 94 | + │ ├── reactive-forms.mdx |
| 95 | + │ ├── typed-reactive-forms.mdx |
| 96 | + │ ├── form-controls-and-groups.mdx |
| 97 | + │ ├── form-arrays.mdx |
| 98 | + │ ├── built-in-validators.mdx |
| 99 | + │ ├── custom-validators.mdx |
| 100 | + │ ├── async-validators.mdx |
| 101 | + │ ├── cross-field-validation.mdx |
| 102 | + │ └── dynamic-forms.mdx |
| 103 | + ├── 12-http-and-api-integration/ |
| 104 | + │ ├── httpclient-setup.mdx |
| 105 | + │ ├── get-post-put-and-delete.mdx |
| 106 | + │ ├── typed-api-responses.mdx |
| 107 | + │ ├── http-error-handling.mdx |
| 108 | + │ ├── interceptors.mdx |
| 109 | + │ ├── authentication-headers.mdx |
| 110 | + │ ├── request-cancellation.mdx |
| 111 | + │ ├── retry-and-timeout-strategies.mdx |
| 112 | + │ └── api-service-architecture.mdx |
| 113 | + ├── 13-rxjs-and-observables/ |
| 114 | + │ ├── observables-fundamentals.mdx |
| 115 | + │ ├── observers-and-subscriptions.mdx |
| 116 | + │ ├── operators-and-pipelines.mdx |
| 117 | + │ ├── map-filter-and-tap.mdx |
| 118 | + │ ├── switchmap-mergemap-and-concatmap.mdx |
| 119 | + │ ├── subjects-and-behavior-subjects.mdx |
| 120 | + │ ├── error-handling-and-retry.mdx |
| 121 | + │ ├── async-pipe.mdx |
| 122 | + │ ├── signals-and-observables-interop.mdx |
| 123 | + │ └── subscription-cleanup.mdx |
| 124 | + ├── 14-state-management/ |
| 125 | + │ ├── local-component-state.mdx |
| 126 | + │ ├── shared-state-with-services.mdx |
| 127 | + │ ├── signal-based-state.mdx |
| 128 | + │ ├── rxjs-based-state.mdx |
| 129 | + │ ├── ngrx-overview.mdx |
| 130 | + │ ├── ngrx-store-actions-and-reducers.mdx |
| 131 | + │ ├── ngrx-effects-and-selectors.mdx |
| 132 | + │ ├── state-management-patterns.mdx |
| 133 | + │ └── choosing-a-state-management-approach.mdx |
| 134 | + ├── 15-styling-and-ui-development/ |
| 135 | + │ ├── component-styles.mdx |
| 136 | + │ ├── global-styles-and-themes.mdx |
| 137 | + │ ├── css-encapsulation.mdx |
| 138 | + │ ├── responsive-angular-layouts.mdx |
| 139 | + │ ├── tailwind-css-with-angular.mdx |
| 140 | + │ ├── angular-material-setup.mdx |
| 141 | + │ ├── reusable-ui-components.mdx |
| 142 | + │ └── design-systems.mdx |
| 143 | + ├── 16-accessibility-and-internationalization/ |
| 144 | + │ ├── accessible-angular-components.mdx |
| 145 | + │ ├── semantic-html-and-keyboard-navigation.mdx |
| 146 | + │ ├── aria-and-accessibility.mdx |
| 147 | + │ ├── angular-aria-and-cdk.mdx |
| 148 | + │ ├── localization-overview.mdx |
| 149 | + │ ├── translation-and-formatting.mdx |
| 150 | + │ └── accessibility-testing.mdx |
| 151 | + ├── 17-testing-and-quality/ |
| 152 | + │ ├── angular-testing-overview.mdx |
| 153 | + │ ├── component-unit-tests.mdx |
| 154 | + │ ├── service-tests.mdx |
| 155 | + │ ├── dependency-injection-in-tests.mdx |
| 156 | + │ ├── http-testing.mdx |
| 157 | + │ ├── routing-tests.mdx |
| 158 | + │ ├── forms-and-validation-tests.mdx |
| 159 | + │ ├── component-harnesses.mdx |
| 160 | + │ ├── end-to-end-testing.mdx |
| 161 | + │ └── linting-and-formatting.mdx |
| 162 | + ├── 18-performance-optimization/ |
| 163 | + │ ├── change-detection.mdx |
| 164 | + │ ├── zoneless-angular.mdx |
| 165 | + │ ├── onpush-and-component-performance.mdx |
| 166 | + │ ├── lazy-loading-and-code-splitting.mdx |
| 167 | + │ ├── defer-and-deferrable-views.mdx |
| 168 | + │ ├── track-and-list-performance.mdx |
| 169 | + │ ├── bundle-analysis.mdx |
| 170 | + │ ├── profiling-and-performance-tools.mdx |
| 171 | + │ └── performance-best-practices.mdx |
| 172 | + ├── 19-server-rendering-and-seo/ |
| 173 | + │ ├── server-side-rendering.mdx |
| 174 | + │ ├── static-site-generation.mdx |
| 175 | + │ ├── hydration-and-incremental-hydration.mdx |
| 176 | + │ ├── prerendering-and-route-configuration.mdx |
| 177 | + │ ├── metadata-and-seo.mdx |
| 178 | + │ ├── browser-only-apis-and-platform-checks.mdx |
| 179 | + │ ├── server-rendering-data-loading.mdx |
| 180 | + │ └── deployment-for-rendered-applications.mdx |
| 181 | + ├── 20-security-and-best-practices/ |
| 182 | + │ ├── angular-security-model.mdx |
| 183 | + │ ├── cross-site-scripting-prevention.mdx |
| 184 | + │ ├── safe-template-binding.mdx |
| 185 | + │ ├── authentication-and-authorization.mdx |
| 186 | + │ ├── route-guards-and-server-security.mdx |
| 187 | + │ ├── dependency-security.mdx |
| 188 | + │ ├── environment-configuration.mdx |
| 189 | + │ └── production-readiness-checklist.mdx |
| 190 | + ├── 21-advanced-angular/ |
| 191 | + │ ├── custom-pipes.mdx |
| 192 | + │ ├── content-projection.mdx |
| 193 | + │ ├── view-queries-and-content-queries.mdx |
| 194 | + │ ├── dynamic-component-creation.mdx |
| 195 | + │ ├── custom-form-controls.mdx |
| 196 | + │ ├── control-value-accessor.mdx |
| 197 | + │ ├── library-development.mdx |
| 198 | + │ ├── angular-elements.mdx |
| 199 | + │ └── migration-and-upgrades.mdx |
| 200 | + ├── 22-deployment-and-devops/ |
| 201 | + │ ├── production-builds.mdx |
| 202 | + │ ├── environment-and-build-configuration.mdx |
| 203 | + │ ├── deploy-to-static-hosting.mdx |
| 204 | + │ ├── deploy-to-cloud-platforms.mdx |
| 205 | + │ ├── dockerize-angular.mdx |
| 206 | + │ ├── nginx-and-web-server-configuration.mdx |
| 207 | + │ ├── continuous-integration.mdx |
| 208 | + │ └── release-monitoring-and-error-tracking.mdx |
| 209 | + ├── 23-projects/ |
| 210 | + │ ├── personal-portfolio.mdx |
| 211 | + │ ├── task-management-app.mdx |
| 212 | + │ ├── weather-dashboard.mdx |
| 213 | + │ ├── ecommerce-storefront.mdx |
| 214 | + │ ├── admin-dashboard.mdx |
| 215 | + │ ├── authentication-portal.mdx |
| 216 | + │ ├── full-stack-angular-app.mdx |
| 217 | + │ └── production-capstone.mdx |
| 218 | + ├── reference/ |
| 219 | + │ ├── angular-cli-cheatsheet.mdx |
| 220 | + │ ├── template-syntax-reference.mdx |
| 221 | + │ ├── signals-reference.mdx |
| 222 | + │ ├── dependency-injection-reference.mdx |
| 223 | + │ ├── router-reference.mdx |
| 224 | + │ ├── forms-reference.mdx |
| 225 | + │ ├── common-errors-and-solutions.mdx |
| 226 | + │ ├── glossary.mdx |
| 227 | + │ └── official-resources.mdx |
| 228 | + └── assets/ |
| 229 | + ├── images/ |
| 230 | + ├── diagrams/ |
| 231 | + └── examples/ |
| 232 | +``` |
0 commit comments