Bird
Raised Fist0
Angularframework~20 mins

Feature modules for organization in Angular - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Feature Module Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
How does lazy loading a feature module affect the initial app load?

Consider an Angular app with a feature module set up for lazy loading. What happens to the app's initial load time when this feature module is lazy loaded?

AThe app will fail to load because lazy loading requires special server configuration.
BThe initial load time increases because lazy loading adds extra overhead during startup.
CThe initial load time stays the same because all modules are bundled together regardless of lazy loading.
DThe initial load time decreases because the feature module code is loaded only when needed.
Attempts:
2 left
💡 Hint

Think about when the feature module's code is downloaded by the browser.

📝 Syntax
intermediate
2:00remaining
Identify the correct way to declare a feature module in Angular

Which of the following code snippets correctly declares a feature module named AdminModule?

Angular
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { AdminComponent } from './admin.component';
A@NgModule({ declarations: [AdminComponent], imports: [CommonModule] }) export class AdminModule {}
B@Module({ declarations: [AdminComponent], imports: [CommonModule] }) export class AdminModule {}
C@NgModule({ components: [AdminComponent], imports: [CommonModule] }) export class AdminModule {}
DNgModule({ declarations: [AdminComponent], imports: [CommonModule] }) export class AdminModule {}
Attempts:
2 left
💡 Hint

Look for the correct decorator syntax and property names.

❓ lifecycle
advanced
2:00remaining
When is a feature module's constructor executed in Angular?

In an Angular app, when does the constructor of a feature module class run?

AWhen the app starts, before any components load.
BOnly when the feature module is loaded, either eagerly or lazily.
CEvery time a component inside the feature module is created.
DOnly when the root module finishes loading.
Attempts:
2 left
💡 Hint

Think about when Angular loads the module code.

🔧 Debug
advanced
2:00remaining
Why does importing a feature module twice cause an error?

Given two feature modules both importing the same shared feature module, what problem can occur and why?

AAngular throws a compile-time error because duplicate module imports are not allowed.
BAngular merges the modules silently, so no error occurs.
CAngular throws a runtime error because the shared module's services are instantiated twice causing conflicts.
DAngular ignores the second import and uses the first one without error.
Attempts:
2 left
💡 Hint

Consider how Angular handles services provided in modules.

🧠 Conceptual
expert
2:00remaining
What is the main benefit of organizing an Angular app with feature modules?

Why do Angular developers use feature modules to organize their apps instead of putting all components and services in the root module?

AFeature modules help split the app into focused areas, improving maintainability and enabling lazy loading for better performance.
BFeature modules allow Angular to skip change detection in those parts of the app.
CFeature modules automatically make the app run faster by compiling code differently.
DFeature modules are required to use Angular Material components.
Attempts:
2 left
💡 Hint

Think about how breaking code into smaller parts helps developers and users.

Practice

(1/5)
1. What is the main purpose of a feature module in Angular?
easy
A. To store global styles for the app
B. To replace the root AppModule entirely
C. To group related components, directives, and services for better organization
D. To handle routing only

Solution

  1. Step 1: Understand feature module role

    Feature modules group related parts like components and services to keep code organized.
  2. Step 2: Compare other options

    Feature modules do not replace AppModule, are not only for routing, and do not store styles.
  3. Final Answer:

    To group related components, directives, and services for better organization -> Option C
  4. Quick Check:

    Feature modules organize related code = D [OK]
Hint: Feature modules group related code parts [OK]
Common Mistakes:
  • Thinking feature modules replace AppModule
  • Believing feature modules only handle routing
  • Confusing feature modules with style storage
2. Which of the following is the correct way to import a feature module named ProductsModule into the root module?
easy
A. declarations: [ProductsModule]
B. imports: [ProductsModule]
C. providers: [ProductsModule]
D. bootstrap: [ProductsModule]

Solution

  1. Step 1: Recall Angular module metadata

    Feature modules are imported using the imports array in @NgModule.
  2. Step 2: Understand other arrays

    declarations is for components/directives, providers for services, bootstrap for root component.
  3. Final Answer:

    imports: [ProductsModule] -> Option B
  4. Quick Check:

    Feature modules go in imports = B [OK]
Hint: Import feature modules inside imports array [OK]
Common Mistakes:
  • Putting modules in declarations array
  • Adding modules to providers array
  • Using bootstrap array for modules
3. Given this code snippet in app.module.ts:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { ProductsModule } from './products/products.module';
import { AppComponent } from './app.component';

@NgModule({
  declarations: [AppComponent],
  imports: [BrowserModule, ProductsModule],
  bootstrap: [AppComponent]
})
export class AppModule { }
What will happen if ProductsModule declares and exports a component ProductListComponent and you use <app-product-list> in AppComponent template?
medium
A. The ProductListComponent will render correctly inside AppComponent
B. Angular will throw a template parse error because ProductListComponent is not declared in AppModule
C. The app will compile but ProductListComponent will not display anything
D. The app will crash at runtime with a component not found error

Solution

  1. Step 1: Understand module imports and declarations

    Since ProductsModule is imported in AppModule, its declared components are available in AppModule's templates.
  2. Step 2: Check component usage in template

    Using <app-product-list> in AppComponent works because ProductListComponent is exported by ProductsModule.
  3. Final Answer:

    The ProductListComponent will render correctly inside AppComponent -> Option A
  4. Quick Check:

    Imported module components usable in templates = A [OK]
Hint: Imported module components can be used in root templates [OK]
Common Mistakes:
  • Thinking components must be declared in AppModule to use
  • Assuming runtime crash instead of compile error
  • Believing imported components won't render
4. You have a feature module OrdersModule but when you try to use its component OrderListComponent in AppComponent, Angular shows an error: 'app-order-list' is not a known element. What is the most likely cause?
medium
A. OrdersModule was not imported into AppModule
B. OrderListComponent was not declared in OrdersModule
C. OrdersModule was added to declarations instead of imports
D. OrderListComponent selector is misspelled in the template

Solution

  1. Step 1: Check module import

    If OrdersModule is not imported in AppModule, its components are unknown in root templates.
  2. Step 2: Review other options

    While declaration or selector errors cause issues, the common cause for 'not a known element' is missing module import.
  3. Final Answer:

    OrdersModule was not imported into AppModule -> Option A
  4. Quick Check:

    Missing module import causes unknown element error = C [OK]
Hint: Always import feature modules in AppModule to use their components [OK]
Common Mistakes:
  • Forgetting to import the feature module
  • Adding module to declarations array
  • Ignoring selector typos
5. You want to organize your Angular app by creating two feature modules: UsersModule and AdminModule. AdminModule needs to use components from UsersModule. How should you set up the modules to allow this?
hard
A. Use providers array to share components between modules
B. Import AdminModule into UsersModule and export needed components from AdminModule
C. Declare all components in both modules to share them
D. Import UsersModule into AdminModule and export needed components from UsersModule

Solution

  1. Step 1: Understand module dependency direction

    If AdminModule needs UsersModule components, UsersModule must be imported into AdminModule.
  2. Step 2: Export components from UsersModule

    Only exported components from UsersModule are visible to AdminModule.
  3. Final Answer:

    Import UsersModule into AdminModule and export needed components from UsersModule -> Option D
  4. Quick Check:

    Import dependency module and export components = A [OK]
Hint: Import and export modules to share components [OK]
Common Mistakes:
  • Importing modules in wrong direction
  • Declaring components in multiple modules
  • Using providers to share components
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard