GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Docs
  • Tutorials
  • Playground
  • Reference
  • code
  • Introduction to Services and DI
  • Creating and using services
  • Defining dependency providers

This view

  • Original page
  • New address

GeezerVison is showing angular.dev — Injectable • Angular

API

@Injectable();
@Injectable(
  options?: { providedIn: Type<any> | 'any' } & InjectableProvider,
);
@Injectable(
  options?: { providedIn: 'root' | 'platform' | null } & InjectableProvider,
);

Usage Notes

Marking a class with @Injectable ensures that the compiler will generate the necessary metadata to create the class's dependencies when the class is injected.

The following example shows how a service class is properly marked so that a supporting service can be injected upon creation.

@Injectable()
        class UsefulService {}

        @Injectable()
        class NeedsService {
          constructor(public service: UsefulService) {}
        }

        const injector = Injector.create({
          providers: [
            {provide: NeedsService, deps: [UsefulService]},
            {provide: UsefulService, deps: []},
          ],
        });
        expect(injector.get(NeedsService).service instanceof UsefulService).toBe(true);
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.