· 2 years ago · Jul 21, 2023, 01:10 PM
1[{'title': 'Modern JavaScript From The Beginning 2.0 - 2023 Revamp', 'instructional_level': 'All Levels', 'created': '2017-12-08T20:33:44Z', 'objectives_summary': ['Learn the Fundamentals (Variables, Loops, Functions, etc)', 'Learn How JavaScript Works (Execution Context, Call Stack, Async JS)', 'Master the Document Object Model & Events (Interactivity)'], 'content_info': '36.5 total hours', 'learning_obj': 'Learn the Fundamentals (Variables, Loops, Functions, etc)\nLearn How JavaScript Works (Execution Context, Call Stack, Async JS)\nMaster the Document Object Model & Events (Interactivity)\nAsynchronous JavaScript (Callbacks, Promises, Fetch, Ajax)\nOOP (Constructors, Prototypes, Classes)\nModern Tooling & Workflow (Webpack, Babel, File Structure, NPM, Plugins & Loaders)\nFull Stack Project With Webpack, Node, Express & MongoDB\n5 Real World Projects & 10+ Mini-Projects', 'course_includes': 'This course includes:\n36.5 hours on-demand video\n1 article\n48 downloadable resources\nAccess on mobile and TV\nFull lifetime access\nCertificate of completion', 'description': 'This is a 36+ hour in-depth course that will take you from the absolute beginning of JavaScript, learning about data types, functions and loops to learning DOM manipulation, asynchronous JS with promises, async/await and much more. You will even learn how to write unit tests for algorithms. We go into how JavaScript works under the hood including execution context, the call stack, event loop, etc. We learn about Webpack tooling and how to create a modern development environment. At the end, we build a Node.js/Express API with a custom Webpack frontend.\n\nAll of the code in the learning modules will go into a folder called "JavaScript Sandbox". This is so we can keep things organized and you can always refer back to it for any code snippets that you may need. All of the final and starter code for the projects is included as well as links to the GitHub Repos.\n\n\n\n\n\nShow more', 'requirements': '\nBasic HTML / CSS knowledge', 'content': [{'sections_title': 'Intro & Getting Started', 'sections_items': ['Welcome To The Course', 'Course Outline', 'What Is JavaScript?', 'Tools & Setup', 'Running JavaScript In The Browser', 'Course Links']}, {'sections_title': 'Variables, Data Types & More', 'sections_items': ['Section Intro', 'The Sandbox Files', 'Using The Console', 'Comments & Shortcuts', 'Variables & Constants', 'Data Types', 'Primitive vs Reference Types', 'Type Conversion', 'Operators', 'Type Coercion', 'Working With Strings', 'Capitalize Challenge', 'Working With Numbers', 'The Math Object', 'Number Challenge', 'Dates & Times', 'Date Methods & DateTimeFormat API']}, {'sections_title': 'Arrays & Objects', 'sections_items': ['Section Intro', 'Creating Arrays', 'Basic Array Methods', 'Nesting, Concat & Spread Operator', 'Array Challenge', 'Object Literals', 'Object Spread Operator & Methods', 'Destructuring & Naming', 'JSON Intro', 'Object Challenge']}, {'sections_title': 'Functions, Scope & Execution Context', 'sections_items': ['Section Intro', 'Function Basics', 'More on Params & Arguments', 'Global & Function Scope', 'Block Scope', 'Nested Scope', 'Declaration vs Expression', 'Arrow Functions', 'Immediately Invoked Function Expressions', 'Function Challenges', 'Execution Context', 'Execution Context In Action', 'The Call Stack']}, {'sections_title': 'Logic & Control Flow', 'sections_items': ['Section Intro', 'If Statements', 'If Else & Nesting', 'Switches', 'Calculator Challenge', 'Truthy & Falsy', 'Logical Operators', 'Logical Assignment', 'Ternary Operator']}, {'sections_title': 'Loops, Iteration & Array Methods', 'sections_items': ['Section Intro', 'For Loop', 'Break & Continue', 'While & Do While Loops', 'FizzBuzz Challenge', 'For Of Loop', 'For In Loop', 'Array.forEach', 'Array.filter', 'Array.map', 'Array.reduce', 'Array Method Challenges']}, {'sections_title': 'Document Object Model', 'sections_items': ['Section Intro', 'Intro To The DOM', 'Document Element Properties', 'DOM Selectors - Single Elements', 'DOM Selectors - Multiple Elements', 'Traversing The DOM - Elements', 'Traversing The DOM - Nodes', 'Create & Append Elements', 'InnerHTML vs createElement()', 'Refactor To Multiple Functions', 'Insert Elements, Text & HTML', 'Custom insertAfter Challenge', 'Replace Elements', 'Remove Elements', 'Working With Styles & Classes']}, {'sections_title': 'Events', 'sections_items': ['Section Intro', 'Event Listeners', 'Mouse Events', 'The Event Object', 'Keyboard Events & Key Properties', 'KeyCode Mini-Project', 'Input Events', 'Form Submission & FormData Object', 'Event Bubbling', 'Event Delegation & Multiple Elements', 'Page Loading & Window Events']}, {'sections_title': 'Shopping List Project', 'sections_items': ['Shopping List - Project Intro', 'Add Items To List', 'Setting Up Git & GitHub (Optional)', 'Remove & Clear Items', 'Clear UI State', 'Filter Items', 'Local Storage Crash Course', 'Add Item To Local Storage', 'Display Items From Local Storage', 'Remove Items From Local Storage', 'Set Item To Edit', 'Update & Reset State', 'Prevent Duplicate Items', 'Deploy To Netlify']}, {'sections_title': 'Asynchronous JavaScript', 'sections_items': ['Section Intro', 'Thread Of Execution', 'How Async JavaScript Works', 'setTimeout & clearTimeout', 'setInterval & clearInterval', 'Callbacks', 'HTTP Request Crash Course', 'DevTools Network Tab', 'AJAX & XHR Object', 'Joke Generator Project Challenge', 'Callback Hell', 'Promises', 'Callback To Promise Refactor', 'Promise Chaining', 'Promises vs Callback Hell', 'promise.all()']}]}, {'title': 'Learn and Understand NodeJS', 'instructional_level': 'All Levels', 'created': '2015-03-28T04:09:24Z', 'objectives_summary': ['Grasp how NodeJS works under the hood', 'Understand the Javascript and technical concepts behind NodeJS', 'Structure a Node application in modules'], 'content_info': '13 total hours', 'learning_obj': 'Grasp how NodeJS works under the hood\nUnderstand the Javascript and technical concepts behind NodeJS\nStructure a Node application in modules\nUnderstand and use the Event Emitter\nUnderstand Buffers, Streams, and Pipes\nBuild a Web Server in Node and understand how it really works\nUse npm and manage node packages\nBuild a web application and API more easily using Express\nConnect to a SQL or Mongo database in Node\nUnderstand how the MEAN stack works\nShow more', 'course_includes': 'This course includes:\n13 hours on-demand video\n4 articles\n53 downloadable resources\nAccess on mobile and TV\nFull lifetime access\nCertificate of completion', 'description': "NodeJS is a rapidy growing web server technology, and Node developers are among the highest paid in the industry. Knowing NodeJS well will get you a job or improve your current one by enabling you to build high quality, robust web applications.\nIn this course you will gain a deep understanding of Node, learn how NodeJS works under the hood, and how that knowledge helps you avoid common pitfalls and drastically improve your ability to debug problems.\nIn this course we'll look at how the C++ written V8 Javascript engine works and how NodeJS uses it to expand the abilities of Javascript. You'll learn how to structure your code for reuse and to be easier to understand, manage, and expand using modules and understand how modules really work.\nYou'll learn how asynchronous code works in Node and the Node event loop, as well as how to use the . We'll see how that leads to .\nShow more", 'requirements': '\nBasic Javascript knowledge (variables, loops, and basic functions)\nBasic HTML knowledge\nA text editor', 'content': [{'sections_title': 'Introduction and Setup', 'sections_items': ['Introduction and the Goal of this Course', 'Big Words and NodeJS', 'Watching this Course in High Definition', 'Conceptual Aside: The Command Line Interface', 'Command Line References']}, {'sections_title': 'V8: The Javascript Engine', 'sections_items': ['Conceptual Aside: Processors, Machine Language, and C++', 'Javascript Aside: Javascript Engines and The ECMAScript Specification', 'V8 Under the Hood', 'Adding Features to Javascript']}, {'sections_title': 'The Node Core', 'sections_items': ['Conceptual Aside: Servers and Clients', 'What Does Javascript Need to Manage a Server?', 'The C++ Core', 'The Javascript Core', 'Downloading Lecture Source Code', "Let's Install and Run Some Javascript in Node"]}, {'sections_title': 'Modules, Exports, and Require', 'sections_items': ['Conceptual Aside: Modules', 'Javascript Aside: First-Class Functions and Function Expressions', "Let's Build a Module", 'Javascript Aside: Objects and Object Literals', 'Javascript Aside: Prototypal Inheritance and Function Constructors', 'Javascript Aside: By Reference and By Value', 'Javascript Aside: Immediately Invoked Function Expressions (IIFEs)', 'How Do Node Modules Really Work?: module.exports and require', 'Javascript Aside: JSON', 'More on require', 'Module Patterns', 'exports vs module.exports', 'Requiring Native (Core) Modules', 'Modules and ES6', 'Web Server Checklist']}, {'sections_title': 'Events and the Event Emitter', 'sections_items': ['Conceptual Aside: Events', 'Javascript Aside: Object Properties, First Class Functions, and Arrays', 'The Node Event Emitter - Part 1', 'The Node Event Emitter - Part 2', 'Javascript Aside: Object.create and Prototypes', 'Inheriting From the Event Emitter', 'Javascript Aside: Node, ES6, and Template Literals', 'Javascript Aside: .call and .apply', 'Inheriting From the Event Emitter - Part 2', 'Javascript Aside: ES6 Classes', 'Inheriting From the Event Emitter - Part 3']}, {'sections_title': 'Asynchronous Code, libuv, The Event Loop, Streams, Files, and more…', 'sections_items': ['Javascript Aside: Javascript is Synchronous', 'Conceptual Aside: Callbacks', 'libuv, The Event Loop, and Non-Blocking Asynchronous Execution', 'Conceptual Aside: Streams and Buffers', 'Conceptual Aside: Binary Data, Character Sets, and Encodings', 'Buffers', 'ES6 Typed Arrays', 'Javascript Aside: Callbacks', 'Files and fs', 'Streams', 'Conceptual Aside: Pipes', 'Pipes', 'Web Server Checklist']}, {'sections_title': 'HTTP and being a Web Server', 'sections_items': ['Conceptual Aside: TCP/IP', 'Conceptual Aside: Addresses and Ports', 'Conceptual Aside: HTTP', 'http_parser', "Let's Build a Web Server in Node", 'Outputting HTML and Templates', 'Streams and Performance', 'Conceptual Aside: APIs and Endpoints', 'Outputting JSON', 'Routing', 'Web Server Checklist']}, {'sections_title': 'NPM: the Node Package Manager', 'sections_items': ['Conceptual Aside: Packages and Package Managers', 'Conceptual Aside: Semantic Versioning (semver)', "npm and the npm registry: Other People's Code", 'init, nodemon, and package.json', 'npm Global Installation', 'init, nodemon, and package.json - Part 2', "Using Other People's Code"]}, {'sections_title': 'Express', 'sections_items': ['Installing Express and Making it Easier to Build a Web Server', 'Routes', 'Static Files and Middleware', 'Templates and Template Engines', 'Querystring and Post Parameters', 'RESTful APIs and JSON', 'Structuring an App']}, {'sections_title': 'Javascript, JSON, and Databases', 'sections_items': ['Conceptual Aside: Relational Databases and SQL', 'Node and MySQL', 'Conceptual Aside: NoSQL and Documents', 'MongoDB and Mongoose', 'Web Server Checklist']}]}, {'title': 'Complete React Developer in 2023 (w/ Redux, Hooks, GraphQL)', 'instructional_level': 'All Levels', 'created': '2019-05-13T14:44:19Z', 'objectives_summary': ['Build enterprise level React applications and deploy to production (using React 18!)', 'Learn to build reactive, performant, large scale applications like a senior developer', 'Learn the latest features in React including Hooks, Context API, Suspense, React Lazy + more'], 'content_info': '42.5 total hours', 'learning_obj': 'Build enterprise level React applications and deploy to production (using React 18!)\nLearn to build reactive, performant, large scale applications like a senior developer\nLearn the latest features in React including Hooks, Context API, Suspense, React Lazy + more\nMaster the latest ecosystem of a React Developer from scratch\nBecome the top 10% ReactJS Developer\nUsing GraphQL as a React Developer\nUse Redux, Redux Thunk and Redux Saga in your applications\nLearn to compare tradeoffs when it comes to different state management\nShow more', 'course_includes': 'This course includes:\n42 hours on-demand video\n1 coding exercise\n44 articles\n29 downloadable resources\nAccess on mobile and TV\nFull lifetime access\nCertificate of completion', 'description': 'Just FULLY updated and re-recorded with all new React features for 2023 (React v18)! Join a live online community of over 900,000+ developers and a course taught by industry experts that have actually worked both in Silicon Valley and Toronto with React.js.\n\nUsing the latest version of React (React 18), this course is focused on efficiency. Never spend time on confusing, out of date, incomplete tutorials anymore. Graduates of Andrei’s courses are now working at Google, Tesla, Amazon, Apple, IBM, JP Morgan, Meta, + other top tech companies.\nWe guarantee you this is the most comprehensive online resource on React. This project based course will introduce you to all of the modern toolchain of a React developer in 2023. Along the way, we will build a massive e-commerce application similar to Shopify using React, Redux, React Hooks, React Suspense, React Router, GraphQL, Context API, Firebase, Redux-Saga, Stripe + more. This is going to be a full stack app (MERN stack), using Firebase.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nShow more', 'requirements': '\nBasic HTML, CSS and JavaScript knowledge\nYou do not need any experience with React or any other JS framework!', 'content': [{'sections_title': 'Introduction', 'sections_items': ['Course Outline', 'Join Our Online Classroom!', 'Exercise: Meet Your Classmates & Instructor', 'ZTM Resources', 'Monthly Coding Challenges, Free Resources and Guides']}, {'sections_title': 'React Key Concepts', 'sections_items': ['React Concepts', 'The Birth of React.js', 'Declarative vs Imperative', 'Component Architecture', 'One Way Data Flow', 'UI Library', 'How To Be A Great React Developer', 'Web Developer Monthly']}, {'sections_title': 'React Basics', 'sections_items': ['Section Overview', 'Course Guideline + Code', 'Environment Setup for Mac', 'Environment Setup For Windows', 'NPM vs YARN', "Yihua's VSCode font and settings", 'VSCode settings update', 'Create React App - NPX', 'Create React App - React-Scripts 1', 'Create React App - React-Scripts 2', 'Create React App - Everything Else', "Don't Eject", 'Hooks vs Classes', 'Quick note: React 18 Strict Mode', 'Monsters Rolodex - Class Components', 'Monsters Rolodex - Component State', 'Monsters Rolodex - setState', 'Monsters Rolodex - States and Shallow Merge', 'Monsters Rolodex - setState and Secondary Callback', 'Monsters Rolodex - Mapping Arrays to Elements', 'Optional: map() + key attribute', 'Monsters Rolodex - Keys for Mapping', 'Monsters Rolodex - Single Page Applications (SPAs)', 'Monsters Rolodex - Lifecycle Method: componentDidMount', 'Optional: Promises', 'Monsters Rolodex - Renders & Re-renders in React', 'Monsters Rolodex - Input Search Box Component', 'Monsters Rolodex - Searching & Filtering', 'Optional: filter(), includes()', 'Monsters Rolodex - Storing Original Data', 'Monsters Rolodex - Optimizations', 'Monsters Rolodex - Understanding Components', 'Monsters Rolodex - CardList Component', 'Monsters Rolodex - Component Props', 'Monsters Rolodex - Rendering and Re-rendering part 2', 'Monsters Rolodex - SearchBox Component', 'Monsters Rolodex - CSS in React', 'Monsters Rolodex - CardList Component', 'Quick note on quotes for string interpolation', 'Monsters Rolodex - Finishing Touches', 'Functional vs Class Components', 'Class Component Lifecycle Methods Breakdown', 'Monsters Rolodex - Functional Component Intro', 'Pure & Impure Functions', 'Monsters Rolodex - Hooks: useState', 'Monsters Rolodex - Functional Component Re-rendering', 'Monsters Rolodex - Infinite Re-rendering', 'Monsters Rolodex - Hooks: useEffect', 'Monsters Rolodex - Remaining Components', 'React v18: Migrating from React v17 + ReactDOM v18 Changes', 'React v18: Strict Mode Changes', 'DOM and Virtual DOM', 'React and ReactDOM', 'React and ReactDOM part 2', 'ReactDOM v18 Changes', 'DOM Paint Flashing', 'Optional: Git + Github', 'Optional: Connecting With SSH To Github']}, {'sections_title': 'Capstone Project: Intro + Setup', 'sections_items': ['Endorsements On LinkedIN', 'Github Strategy', 'The Long Road Ahead', 'Project Overview', 'Scaffolding Our Capstone Project', 'Setting Up Our Categories', 'Adding Sass', 'Category Item Component', 'Directory Component', 'Adding Fonts']}, {'sections_title': 'Routing + React-Router', 'sections_items': ['Routing', 'Updating/Upgrading Libraries', 'Setting Up Our Homepage', 'React Router Outlet', 'Navigation Bar Component', 'React Router Link', 'Styling for Navigation + Logo']}, {'sections_title': 'Authentication + Firebase', 'sections_items': ['Setting Up Firebase', 'Authentication Flow', 'Optional: Async Await', 'Optional: How to fix 403: restricted_client error', 'Authenticating With Firebase', 'Introducing Firestore Data Models', 'Setting Up User Documents', 'Finish Creating User Documents', 'Sign In With Redirect', 'Sign Up Form Pt.1', 'Sign Up Form Pt.2', 'Sign Up With Email + Password', 'Generalizing Form Input Component', 'Custom Button Component', 'Sign In Form', 'Finishing Authentication Page']}, {'sections_title': 'React Context For State Management', 'sections_items': ['Need For Context', 'User Context', 'Re-rendering From Context', 'Signing Out', 'Exercise: Imposter Syndrome']}, {'sections_title': 'Observer Pattern', 'sections_items': ['Observer: onAuthStateChange', 'Finalizing Auth Listener', 'Observer Pattern']}, {'sections_title': 'React Context Continued', 'sections_items': ['New Shop Page', 'Products Context', 'Product Card Component', 'Cart Icon & Dropdown', 'Toggle Cart Open', 'Add To Cart Pt.1', 'Add To Cart Pt.2', 'Optional: reduce()', 'Cart Item Designs', 'Creating Checkout Page', 'Checkout Item Pt. 1', 'Checkout Item Pt.2', 'Checkout Item Pt.3', 'Cart Total']}, {'sections_title': 'Firebase Database Storage', 'sections_items': ['Firestore DB No-SQL', 'addCollectionAndDocuments Pt.1', 'addCollectionAndDocuments Pt.2', 'Get Products + Categories From Firestore', 'Optional: Hash Tables vs Arrays', 'Using Our CategoriesMap', 'Category Preview Component', 'Nested Routes in Shop', 'Category Page']}]}, {'title': 'The Complete Angular Course: Beginner to Advanced', 'instructional_level': 'All Levels', 'created': '2017-06-09T19:03:05Z', 'objectives_summary': ['Establish yourself as a skilled professional developer', 'Build real-world Angular applications on your own', 'Troubleshoot common Angular errors'], 'content_info': '29.5 total hours', 'learning_obj': 'Establish yourself as a skilled professional developer\nBuild real-world Angular applications on your own\nTroubleshoot common Angular errors\nMaster the best practices\nWrite clean and elegant code like a professional developer', 'course_includes': 'This course includes:\n29.5 hours on-demand video\nAssignments\n10 articles\n38 downloadable resources\nAccess on mobile and TV\nFull lifetime access\nCertificate of completion', 'description': "Angular is one of the most popular frameworks for building client apps with HTML, CSS and TypeScript. If you want to establish yourself as a front-end or a full-stack developer, you need to learn Angular.\n\nIf you've been confused or frustrated jumping from one Angular 4 tutorial to another, you've come to the right place. In this course, Mosh, author of several best-selling courses on Udemy, takes you on a fun and pragmatic journey to master Angular 4. \n\nBy the end of watching this course, you'll be able to: \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nShow more", 'requirements': '\nBasic familiarity with HTML, CSS and JavaScript\nNO knowledge of Angular 1 or Angular 2 is required', 'content': [{'sections_title': 'Introduction', 'sections_items': ['Introduction', 'What is Angular', 'Architecture of Angular Apps', 'Setting Up the Development Environment', 'Your First Angular App', 'Structure of Angular Projects', 'Webpack', 'Angular Version History', 'Angular Basics', 'Course Structure', 'Making a Promise', 'Asking Questions']}, {'sections_title': 'TypeScript Fundamentals', 'sections_items': ['Introduction', 'What is TypeScript?', 'Your First TypeScript Program', 'Declaring Variables', 'Types', 'Type Assertions', 'Arrow Functions', 'Interfaces', 'Classes', 'Objects', 'Constructors', 'Access Modifiers', 'Access Modifiers in Constructor Parameters', 'Properties', 'Modules', 'Exercise', 'Solution', 'A Problem with the Current Implementation']}, {'sections_title': 'Angular Fundamentals', 'sections_items': ['Introduction', 'Building Blocks of Angular Apps', 'Components', 'Generating Components Using Angular CLI', 'Templates', 'Directives', 'Services', 'Dependency Injection', 'Generating Services Using Angular CLI', 'List of Authors']}, {'sections_title': 'Displaying Data and Handling Events', 'sections_items': ['Introduction', 'Property Binding', 'Attribute Binding', 'Adding Bootstrap', 'Class Binding', 'Style Binding', 'Event Binding', 'Event Filtering', 'Template Variables', 'Two-way Binding', 'Pipes', 'Custom Pipes', 'Favorite Component', 'Title Casing']}, {'sections_title': 'Building Re-usable Components', 'sections_items': ['Introduction', 'Component API', 'Input Properties', 'Aliasing Input Properties', 'Output Properties', 'Passing Event Data', 'Aliasing Output Properties', 'Templates', 'Styles', 'View Encapsulation', 'ngContent', 'ngContainer', 'Like Component']}, {'sections_title': 'Directives', 'sections_items': ['Introduction', 'ngIf', 'Hidden Property', 'ngSwitchCase', 'ngFor', 'ngFor and Change Detection', 'ngFor and Trackby', 'The Leading Asterisk', 'ngClass', 'ngStyle', 'Safe Traversal Operator', 'Creating Custom Directives', 'Exercise: ZippyComponent']}, {'sections_title': 'Template-driven Forms', 'sections_items': ['Introduction', 'Building a Bootstrap Form', 'Types of Forms', 'ngModel', 'Adding Validation', 'Specific Validation Errors', 'Styling Invalid Input Fields', 'Cleaner Templates', 'ngForm', 'ngModelGroup', 'Control Classes and Directives', 'Disabling the Submit Button', 'Working with Check Boxes', 'Working with Drop-down Lists', 'Working with Radio Buttons', 'Course Form']}, {'sections_title': 'Reactive Forms', 'sections_items': ['Introduction', 'Building a Bootstrap Form', 'Creating Controls Programmatically', 'Adding Validation', 'Specific Validation Errors', 'Implementing Custom Validation', 'Asynchronous Operations', 'Asynchronous Validators', 'Showing a Loader Image', 'Validating the Form Input Upon Submit', 'Nested FormGroups', 'FormArray', 'FormBuilder', 'Quick Recap', 'Change Password Form']}, {'sections_title': 'Consuming HTTP Services', 'sections_items': ['Introduction', 'JSONPlaceHolder', 'Getting Data', 'Creating Data', 'Updating Data', 'Deleting Data', 'OnInit Interface', 'Separation of Concerns', 'Extracting a Service', 'Handling Errors', 'Handling Unexpected Errors', 'Handling Expected Errors', 'Throwing Application-specific Errors', 'Handling Bad Request Errors', 'Importing Observable Operators and Factory Methods', 'Global Error Handling', 'Extracting a Reusable Error Handling Method', 'Extracting a Reusable Data Service', 'The Map Operator', 'Optimistic vs Pessimistic Updates', 'Observables vs Promises', 'GitHub Followers Page']}, {'sections_title': 'Routing and Navigation', 'sections_items': ['Introduction', 'Routing in a Nutshell', 'Configuring Routes', 'RouterOutlet', 'RouterLink', 'RouterLinkActive', 'Getting the Route Parameters', 'Why Route Parameters Are Observables', 'Routes with Multiple Parameters', 'Query Parameters', 'Subscribing to Multiple Observables', 'The SwitchMap Operator', 'Programmatic Navigation', 'Blog Archives']}]}]
2