Angular-RU SDK
  • Getting Started
    • Introduction
  • CDK
    • @angular-ru/cdk/typings
    • @angular-ru/cdk/number
    • @angular-ru/cdk/string
    • @angular-ru/cdk/date
    • @angular-ru/cdk/array
    • @angular-ru/cdk/object
    • @angular-ru/cdk/regexp
    • @angular-ru/cdk/function
    • @angular-ru/cdk/runtime
    • @angular-ru/cdk/ivy
    • @angular-ru/cdk/utils
    • @angular-ru/cdk/class-transformer
    • @angular-ru/cdk/validators
    • @angular-ru/cdk/directives
    • @angular-ru/cdk/decorators
    • @angular-ru/cdk/pipes
    • @angular-ru/cdk/rxjs
    • @angular-ru/cdk/animations
    • @angular-ru/cdk/zone.js
    • @angular-ru/cdk/webworker
    • @angular-ru/cdk/node.js
    • @angular-ru/cdk/flex-layout
    • @angular-ru/cdk/http
    • @angular-ru/cdk/logger
    • @angular-ru/cdk/stream
    • @angular-ru/cdk/tooltip
    • @angular-ru/cdk/virtual-table
    • @angular-ru/cdk/big-decimal
  • NGXS
    • Introduction
    • @StateRepository
    • @DataAction
    • @Computed
    • @Persistence
    • Entity state adapter
    • Unit Testing
    • Lifecycle
    • Immutability
    • Extension API
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
  1. CDK

@angular-ru/cdk/ivy

  • useInjector - Access to DI inside decorators by class constructor

import { Component, Injector } from '@angular/core';
import { useInjector } from '@angular-ru/cdk/ivy';

import { UserService } from './test.service.ts';

function Username(): PropertyDecorator {
    return <T extends typeof Object.prototype>(prototypeRef: T, propertyKey: string | symbol): void => {
        useInjector(prototypeRef.constructor, (injector: Injector, instance: any): void => {
            const userService: UserService = injector.get(UserService);
            instance[propertyKey] = userService.username;
        });
    };
}

@Component({
    selector: 'test-component',
    template: ''
})
class TestComponent {
    @Username()
    public username!: string; // username will appear here after the constructor has completed
}
Previous@angular-ru/cdk/runtimeNext@angular-ru/cdk/utils

Last updated 3 years ago

Was this helpful?