Angular: рдкреНрд░рд╕реНрддрд╛рд╡: рдШрдЯрдХ рдШреЛрд╖рдгрд╛ рдореЗрдВ рдореЗрдЬрдмрд╛рди рддрддреНрд╡реЛрдВ рдХреЛ рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 23 рдордИ 2016  ┬╖  114рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: angular/angular

рдореИрдВ рдХреЛрдгреАрдп 2 рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рд░реЛрдб рдмреНрд▓реЙрдХ рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реВрдВред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдмрдЯрди рдШрдЯрдХ рд╣реИ, рдФрд░ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рд╣реИ рдЬреЛ рд╕реНрдкрд░реНрд╢ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛ред рдХреЗрд╡рд▓ рдмрдЯрди рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрдИ рдЕрдиреНрдп рд╡рд╕реНрддреБрдПрдВ рд╣реЛрдВрдЧреА рдЬреЛ рдареАрдХ рдЙрд╕реА рд╕реНрдкрд░реНрд╢ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреАред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдиреБрдХрд╕рд╛рди рд╣реБрдЖ рд╣реИ:

  • рд╕реАрдзреЗ рдЯрдЪрдХреНрд▓рд╛рд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВред рдпрд╣ рдЖрджрд░реНрд╢ рд╕реЗ рдХрдо рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХрд╛рдзрд┐рдХ рд╡рд░реНрдЧ рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
  • рдПрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирдХрд▓реА рдПрдХрд╛рдзрд┐рдХ рд╡рд░реНрдЧ рд╡рд┐рд░рд╛рд╕рддред рдпрд╣ рдПрдХ рд╣реИрдХ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рд╣рд░ рд╡рд░реНрдЧ рдкрд░ рдПрдХ рд╢рд┐рдо рдПрдкреАрдЖрдИ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рдорд┐рд╢реНрд░рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред https://www.stevefenton.co.uk/2014/02/TypeScript-Mixins-Part-One/
  • рдПрдХ рд╕рд╣рд╛рдпрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдВ рдЬреЛ рдЗрд╕реЗ рдШрдЯрдХ рдирд┐рд░реНрдорд╛рддрд╛ рдореЗрдВ рд╕реАрдзреЗ elementRef.nativeElement рдкрд░ рд╕реЗрд╡рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдореЗрдВ рдЪрд▓рддреЗ рд╕рдордп рдореВрд▓ рддрддреНрд╡ рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╡рд╣ рдХреНрд╖рдорддрд╛ рдРрд╕реА рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реВрдВред

рд╣рд┐рдореНрдордд рдореЗрдВ рдмрд╣реБрдд рдЧрд╣рд░рд╛рдИ рддрдХ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдШрдЯрдХ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдШрдЯрдХ рд╕рдВрдХрд▓рди рд╕рдордп рдХреЗ рджреМрд░рд╛рди рдЙрдкрд▓рдмреНрдз рд╣реИ, рдФрд░ рдореЗрдЬрдмрд╛рди рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдХреЛрдгреАрдп рддрд░реАрдХреЗ рд╕реЗ рдорд┐рд╢реНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛: рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрдкреЛрдЬрд╝реЗрдмрд▓ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдФрд░ рджреГрд╢реНрдп рдкреНрд░рдХреНрд╖реЗрдкрдг рдХреЛ рддреЛрдбрд╝реЗ рдмрд┐рдирд╛ рдХрд░рдирд╛ред рдиреАрдЪреЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЙрджрд╛рд╣рд░рдгред

рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░
рдХреЙрдореНрдкреЛрдиреЗрдиреНрдЯрдореЗрдЯрд╛рдбреЗрдЯрд╛.рд╣реЛрд╕реНрдЯ рдореЗрдВ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рдЗрд╕реЗ рдПрдХ рдирд┐рдпрдорд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддрд╛ рд╣реИ

рдЕрдкреЗрдХреНрд╖рд┐рдд/рд╡рд╛рдВрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░
рдореЗрдЬрдмрд╛рди рдореЗрдВ рдШреЛрд╖рд┐рдд рдирд┐рд░реНрджреЗрд╢ рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

/**
 * App
 */
@Component({
    selector: 'app-component',
    template: '<g-btn>TEST</g-btn>',
    directives: [gBtn, gTouch]
})

export class AppComponent {
    constructor() {

    }
}

/**
 * Touch Directive
 * Will be used in lots and lots of components
 */
@Directive({
    selector: '[g-touch]',
    host: { 
        '(touchstart)': '...',
        '(touchend)': '...',
        '(touchmove)': '...',
        '(touchcancel)': '...'
    }
})

export class gTouch {
    constructor() {

    }
}

/**
 * Simple button component
 */
@Component({
    selector: 'g-btn',
    template: '<ng-content></ng-content>',
    host: {
        'role': 'button',
        // WOULD LOVE FOR THIS TO COMPILE THE DIRECTIVE!
        // right now it just adds an attribute called g-touch
        'g-touch': ' ' 
    }
})

export class gBtn {

    constructor() {

    }
}

рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░:

// Option 1: just scan the host properties for directives.
// This would be my ideal, simple and understandable
@Component({
    selector: 'g-btn',
    template: '<ng-content></ng-content>',
    host: {
        'role': 'button',
        'g-touch': true // or {prop: 'foo'} or string
    }
})

// Option 2: definitely more declarative using a hostDirectives property
// more declarative, albeit more annoying to have to reimport the touch class
@Component({
    selector: 'g-btn',
    template: '<ng-content></ng-content>',
    hostDirectives: gTouch,
    host: {
        'role': 'button',
        'g-touch': true
    }
})

// Option 3: declare host directives as its own thing, still just
// use keys pointing to bool, obj, or string
@Component({
    selector: 'g-btn',
    template: '<ng-content></ng-content>',
    hostDirectives: {
        'g-touch': {someOption: someOption}
    },
    host: {
        'role': 'button',
    }
});

// Option 4: Not a huge fan of this one, but understandable if
// people want to keep one host property
@Component({
    selector: 'g-btn',
    template: '<ng-content></ng-content>',
    host: {
        'role': 'button',
        _directives: {
            'g-touch': true
        }
    }
});

рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж, рдПрдВрдЧреБрд▓рд░ 2 рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ!. рдЕрдЧрд░ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред

core directive matching host and host bindings feature

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@IgorMinar рдЖрдЗрд╡реА рдХрд╛рд░реНрдп рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдмрдирд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рд╛рдБ рдкрд┐рдЫрд▓реЗ v6.

рд╕рднреА 114 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рдЧреНрд░рд╛рд╣рдХ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕рднреА рдЬреАрдпреВрдЖрдИ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдХреЛрдгреАрдп 2 рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рддреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЬреЗрдореНрд╕ рдиреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрддрд╛рдпрд╛ред
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫреЗ рдореЙрдбреНрдпреВрд▓рд░ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред рд╕реНрдкрд░реНрд╢ рдЙрджрд╛рд╣рд░рдг рдХрдИ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╣реИ рдЬрд╣рд╛рдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЬреИрд╕реЗ рдбреНрд░реИрдЧ рдПрдВрдб рдбреНрд░реЙрдк, рд░рд┐рд╕рд╛рдЗрдЬ рдСрдмреНрдЬрд░реНрд╡рд┐рдВрдЧ рдЖрджрд┐ рдЖрджрд┐ред
рдкреНрд▓рдВрдХрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛:
https://plnkr.co/edit/J65THEMic0yhObt1LkCu?p=info

рдХреНрдпрд╛ рдХреЛрдИ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЬрд▓реНрдж рд╣реА рдХрд┐рд╕реА рднреА рд╕рдордп рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛?

рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдкреНрд░рд╢реНрди рд╣реИ: http://stackoverflow.com/questions/37148080/use-angular2-directive-in-host-of-another-directive

@ Andy1605 рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрднреА рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдЦреЛрдЬрд╛? рдореИрдВрдиреЗ RCs рдХреЗ рджреМрд░рд╛рди рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ NG2 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдмрд╛рдд рдХрд╣реАред рдЗрд╕реЗ рд╡рд╛рдкрд╕ рд▓реЗрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╕реНрдпрд╛ рдореБрдЭреЗ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рдпреВрдЖрдИ рдкреИрдЯрд░реНрди рдмрдирд╛рдиреЗ рд╕реЗ рд░реЛрдХрддреА рд╣реИред

рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдВрдЧреБрд▓рд░ рдпрд╣рд╛рдВ рдПрдХ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реИред рдПрдХ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдореЗрдЬрдмрд╛рди рдХреЗ рд▓рд┐рдП (рдПрдХрд╛рдзрд┐рдХ) рд╡рд┐рд╢реЗрд╖рддрд╛-рдирд┐рд░реНрджреЗрд╢ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рди рдХрд░ рдкрд╛рдирд╛ рднреА рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рдмрд╛рдзрд╛ рд╣реИред
рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕реЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрд╛ рдЕрдЧрд░ рдРрд╕рд╛ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рд╣реИ (рдпрджреНрдпрдкрд┐ рдХреЛрдгреАрдп рд╕рдВрд╕реНрдХрд░рдг 1 рдХреЗ рд▓рд┐рдП): https://github.com/angular/angular.js/issues/15270ред

рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдХреЗрд╡рд▓ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╕рдВрдХрд▓рди рдврд╛рдВрдЪреЗ рдореЗрдВ "рд╣реЛрд╕реНрдЯрдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдореНрд╕" рдирд╛рдордХ рдПрдХ рдирдпрд╛ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдкреЙрдЗрдВрдЯ рд╣реЛрдЧрд╛ (рдХреЛрдгреАрдп 1 рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, "рдиреЛрдбрдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдореНрд╕") рдЬрд┐рд╕рдХреА рдкрд╣реБрдВрдЪ рдЕрдирдореЙрдбрд┐рдлрд╛рдЗрдб, рдЕрдирдлрд╝рд┐рд▓реНрдЯрд░реНрдб рдШрдЯрдХ рдШреЛрд╖рдгрд╛ рддрдХ рд╣реЛрдЧреА рдФрд░ рдореВрд▓, рдЕрд╕рдореНрдкреАрдбрд┐рдд рдШрдЯрдХ рд╣реЛрд╕реНрдЯ рдиреЛрдб рдЬрдм рднреА рдХрд┐рд╕реА рдШрдЯрдХ рдХрд╛ рдкрд╣рд▓реА рдмрд╛рд░ рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ DOM рдореЗрдВ рд╕рдореНрдорд┐рд▓рди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХрд╕реНрдЯрдо рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдШрдЯрдХ рд╕рдЬреНрдЬрд╛рдХрд╛рд░реЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЙрди рдХрд╕реНрдЯрдо рдЧреБрдгреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЛрдбрдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╕рдВрдХрд▓рди рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рдХреЛрдгреАрдп рдврд╛рдВрдЪреЗ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдлрд╝реАрдЪрд░ рдЕрдиреБрд░реЛрдз рдереНрд░реЗрдб рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред

рдореИрдВ рдХреЛрдгреАрдп 2 рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреЛрдгреАрдп рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдпрд╣рд╛рдВ рд╕рдорд╛рди рд╣реЛрдЧреА рдпрд╛ рдирд╣реАрдВред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рдЕрдиреБрд░реЛрдз рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрд╣ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдпрд╛ рддреЛ рдХреЛрдгреАрдп 2 рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдмреИрдХрдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рдХреЛрдгреАрдпрдЬ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдмрд╛рдд рд╣реИ?)

+1

рдореБрдЭреЗ рд╕рд╣рдордд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛ рд╣рдореЗрдВ рдореЗрдЬрдмрд╛рди рдореЗрдВ рдпреЛрдЧрджрд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рдиреЗ рджреЗрддреА рд╣реИ, рд╡рд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╣реЛрдЧреАред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрднреА рдФрд░ рдЕрдзрд┐рдХ "рдХреЛрдгреАрдп" рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреИрд╕реЗ рдореЗрд░реЗ рдпреВрдЖрдИ рдШрдЯрдХреЛрдВ рдореЗрдВ рдбреНрд░реИрдЧ/рдбреНрд░реЙрдк рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдирд╛ред

<ng-container> рд╕рдорд╛рди рдПрдХ рдирдпрд╛ рдЯреИрдЧ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ host рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рдмрдЬрд╛рдп рдШрдЯрдХ рдХреЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ? рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд╣реЛрд╕реНрдЯ рдШрдЯрдХ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП <ng-host [attributeDirective]> рдЬреИрд╕рд╛ рдХреБрдЫред

@jjstreet рдЖрдкрдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ replace: true рд╕рдорд╛рди рд▓рдЧрддрд╛ рд╣реИ (рдЬрд╛рд╣рд┐рд░ рд╣реИ рд╕рдорд╛рди рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рд╕рдорд╛рди), рдЬрд┐рд╕реЗ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж replace: true рдХреЛ рдХрд┐рд╕реА рдРрд╕реЗ рдХрд╛рд░рдг рд╕реЗ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдпрд╣рд╛рдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

@ pkozlowski-opensource рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрд╕ рдкрд░ ng2 рдЯреАрдо рд╕реЗ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ?

рдореИрдВ рдЗрд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЦреЗрд▓ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдореЗрдЬрдмрд╛рди рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреА рдШрдЯрдХ рдХреЗ рд╕реНрдерд╛рдиреАрдп рджрд╛рдпрд░реЗ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ, рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдШрдЯрдХ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдирд┐рд░реНрджреЗрд╢ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рдХреА рддрд░рд╣ рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВред

+1 рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП UI рдШрдЯрдХреЛрдВ рдореЗрдВ рд╕реНрд╡рдЪреНрдЫ рдФрд░ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдХреЛрдб рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ

+1

рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрд╕ рдкрд░ ng2 рдЯреАрдо рд╕реЗ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ? рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЕрдЧрд░ рдпрд╣ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдпрд╛ рдпрд╣ рдХрд╣рдирд╛ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореИрдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЗрдирдкреБрдЯ рд╕реБрдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗрд╕ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдпрд╣ ng2-mobx (https://github.com/500tech/ng2-mobx) рдХреЛ рд░реИрдкрд┐рдВрдЧ рдШрдЯрдХ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдФрд░ рдЕрдзрд┐рдХ рд╕рд╛рдл рджрд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдореБрдЭреЗ рдпрд╣ рднреА рд▓реЗрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореБрдЭреЗ рдХрд╕реНрдЯрдо routerLink рдирд┐рд░реНрджреЗрд╢ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рдХреЛрдгреАрдп рдПрдХ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдХреЗрд╡рд▓ mi рдирд┐рд░реНрджреЗрд╢ рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд░реВрдВрдЧрд╛ред

рддреЛ <a [routerLink]="repeatedCodeToGetLink()"> рдмрдЬрд╛рдп рдореЗрд░реЗ рдкрд╛рд╕ <a [myRouterLink]> рд╣реЛрдЧрд╛ рдФрд░ рдпрд╣ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ [routerLink] рдХреЛ рд╣рд▓ рдХрд┐рдП рдЧрдП рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛ред

рдЗрд╕рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рд▓реЗрдХрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реИрдВ!

рд╣рдореЗрдВ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдореБрдЭреЗ рдкрддрд╛ рдерд╛ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреБрд▓рд╛ рдореБрджреНрджрд╛ рдерд╛, рдореИрдВрдиреЗ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдкрд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ

рдореИрдВрдиреЗ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ https://github.com/angular/flex-layout/issues/162 рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдХрд░ рдкрд╛рдПрдВрдЧреЗ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЦреЛрд▓рд╛ рд╣реИред ( рдЙрджрд╛рд╣рд░рдг рдФрд░ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ )

рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдЗрд╕ рд░реЗрдкреЛ рдореЗрдВ рд╕рднреА рдЦреБрд▓реЗ рдореБрджреНрджреЛрдВ рдореЗрдВ рддреАрд╕рд░рд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЕрдВрдЧреВрдард╛ рд╣реИ ред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдпрд╛ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ (рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдХреЛ рдкрд╛рд░ рдХрд░рддреЗ рд╣реБрдП) рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ!

/рд╕реАрд╕реА @tbosch @IgorMinar @mhevery @jelbourn @hansl @ThomasBurleson

@jjstreet рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рд╕реБрдЭрд╛рд╡

<ng-host myDirective="foo"></ng-host> 

... рдПрдХ рдФрд░ рдЕрд▓рдЧ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдЕрд▓рдЧ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╣рдо рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рджреЗрдЦреЗрдВ https://github.com/angular/angular/issues/7297

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВ рдореВрд▓ рдШрдЯрдХ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рдХрд░ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдореЗрдЬрдмрд╛рди рдореЗрдВ рд╢реНрд░реЛрддрд╛ рдХреЛ @HostListener рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВред

рдЬрдирдХ.html
<my-component myDirective>

рдШрдЯрдХ.ts
@HostListener('myEvent') handler() { // do stuff }

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рд╕реАрдзреЗ рд╣реЛрд╕реНрдЯ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХреНрд▓реАрдирд░ рд╣реЛрдЧрд╛ ...

рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЬрдореАрди рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛ред

  • рдореЗрд░реЗ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдЙрддреНрддрд░ рдкрд░ рдкреВрд░реНрдг рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг: http://stackoverflow.com/a/41650302/2959469
  • рдЯреАрдПрд▓; рдбреАрдЖрд░ рдкреНрд▓рдВрдХрд░ рджреЗрдЦреЗрдВ: https://plnkr.co/edit/TCagW8vOPrqSiOT9Oztf

рдмрд╕ рдПрдХ рдорд╛рд╕рд┐рдХ рдЕрдиреБрд╕реНрдорд╛рд░рдХ рдХрд┐ рд╣рдо рдЗрд╕ рдкрд░ рдПрдВрдЧреБрд▓рд░ рдЯреАрдо рд╕реЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдпрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рдЯрд┐рдкреНрдкрдгреА рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

@tbosch - рдЗрд╕ рдореБрджреНрджреЗ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкрд░ рдХреЛрдИ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд┐рдЪрд╛рд░ред рдпрд╣ @angular/flex-layout рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред

@fadzic рдХреНрдпрд╛ рдЖрдк рдРрд╕рд╛ рдХрд░рдХреЗ рдХреЗрд╡рд▓ рд╣реЛрд╕реНрдЯ рддрддреНрд╡ рдХреЛ рдирд┐рд░реНрджреЗрд╢ рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ ...

рдШрдЯрдХ.ts
@HostBinding('attr.myHilite') myHilite = new myHiliteDirective()

рдпрд╛ рдЗрд╕ рддрд░рд╣ рдЕрдЧрд░ рдЖрдкрдХреЛ ElementRef рдпрд╛ Renderer2 рдЬреИрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдЪрд╛рд╣рд┐рдП
@HostBinding('attr.myHilite') myHilite = new myHiliteDirective(this.elementRef, this.renderer)

рдореБрдЭреЗ рдореЗрдЬрдмрд╛рди рддрддреНрд╡ рдХреЛ рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВ рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╣ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдЬреЛ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдП рдерд╛ред рдореИрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдХреЛрдгреАрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╛рдзрд╛рди рдЕрдм рддрдХ рдХрд╛рдо рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдереА рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред рдзрдиреНрдпрд╡рд╛рджред

@btinoco рдЬреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдЬреАрд╡рдирдЪрдХреНрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдм рдХреБрдЫ рддрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рди рдХрд┐ рдХреЗрд╡рд▓ рдЖрдкрдХреЗ рд▓рд┐рдП рдХреЛрдгреАрдп рддрд╛рд░ рд░рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдпред

@hcampos рд╕рд┐рд░ рдКрдкрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдЕрднреА рдЗрд╕реЗ рдЖрдЬрдорд╛рдпрд╛ рд╣реИ рдФрд░ рдореЗрд░реЗ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ ngOnInit рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рд╣реБрдЖ (рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдШрдЯрдХ рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛) рдпрд╛ рдореИрдВ рдЕрдкрдиреЗ рдШрдЯрдХ рдХреЗ ngOnInit() рдкрд░ рдирд┐рд░реНрджреЗрд╢ рдХреЗ ngOnInit() рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ . рдореБрдЭреЗ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рджред

@btinoco - рд╣рд╛рдБред рдпрд╣ рдПрдХ рд╕реВрдХреНрд╖реНрдо рд▓реЗрдХрд┐рди рдШрд┐рдиреМрдирд╛ рдореБрджреНрджрд╛ рд╣реИред рдПрдХ рдХрд┐ @ рдХреЛрдгреАрдп/рдлреНрд▓реЗрдХреНрд╕-рд▓реЗрдЖрдЙрдЯ рдЙрдореНрдореАрджреЗрдВ рдЬрд▓реНрдж рд╣реА рдареАрдХ рд╣реЛ рдЬрд╛рдПрдВрдЧреАред ;-)

рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдПрдВрдЧреБрд▓рд░ рдЯреАрдо рдХреА рдУрд░ рд╕реЗ рдХреЛрдИ рдЦрдмрд░? рдЗрд╕ рдЗрд╢реНрдпреВ рдХреЛ рдЦреЛрд▓реЗ рд╣реБрдП 1 рд╕рд╛рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИ...

рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдпрд╣ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдвреВрдБрдврдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдерд╛,
рддрдм рдХреЛрдгреАрдп рдЯреАрдо рд╕реЗ рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдорд┐рд▓рдирд╛ рд╕реБрдкрд░ рдЕрдирдХреВрд▓ рдерд╛ :(

рдкрд╣рд▓реЗ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ:

рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдмрд╣реБрдд рдХреБрдЫ рдорд┐рдХреНрд╕рд┐рди рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред рджрд░рдЕрд╕рд▓, рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрд╢рди рдореЗрдВ рдмреБрд▓реЗрдЯ рдирдВрдмрд░ 2
рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдзрд┐рдХрд╛рд░реА рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг, рдпрд╣рд╛рдБ рджреЗрдЦреЗрдВред
рдХреЛрдгреАрдп рдореЗрдВ, рдпрд╣ рдереЛрдбрд╝рд╛ рдЦрд░рд╛рдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ @Input() s рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЧ рдХреЛ рдорд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк
рдЙрдиреНрд╣реЗрдВ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдкрд░ рдлрд┐рд░ рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдПрдХ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдЬ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдШрдЯрдХ рдореЗрдВ рдПрдХ рдЖрд╡рд░рдг рддрддреНрд╡ рд╣реЛ рдФрд░ рд╡рд╣рд╛рдВ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдШрдЯрдХ рдореЗрдВ <wrapper g-touch>... рдЬреИрд╕рд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИ

"рдПрдХ рд╕рд╣рд╛рдпрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдВ рдЬреЛ рдЗрд╕реЗ рд╕реАрдзреЗ elementRef.nativeElement рдкрд░ рд╕реЗрд╡рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░рддрд╛ рд╣реИ" рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ:
рд╣рд╛рдБ, рдпрд╣ рднреА рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд▓рдЧрддрд╛ рд╣реИред рдореИрдВ рдЕрднреА рдХреЗ рд▓рд┐рдП WebWorkers рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛,
рдЪреВрдВрдХрд┐ рд╡реЗ рдЕрднреА рднреА рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╣реИрдВ рдФрд░ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмрдбрд╝реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ,
рдФрд░ рд▓рдЧрднрдЧ рдХреЛрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡реЗрдмрд╡рд░реНрдХрд░реНрд╕ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рд╕рд╛рдордЧреНрд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рднреА рджреЗрдЦреЗрдВ рдЬреЛ рд╕реАрдзреЗ рдбреАрдУрдПрдо рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИред

рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд╡рд┐рдХрд▓реНрдк 1 рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ:

рдореЗрдЬрдмрд╛рди рд╕рдВрдкрддреНрддрд┐ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рд╢рдмреНрджрд╛рд░реНрде рд╣реИрдВ,
рдХрд┐ рд╡реЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд HTML рддрддреНрд╡ рдкрд░ рдПрдХ рд╕рдВрдкрддреНрддрд┐ myDir рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ,
рд▓реЗрдХрд┐рди рдХреЛрдИ рдирд┐рд░реНрджреЗрд╢ рдирд╣реАрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ host рднреА рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ
рдФрд░ рднреНрд░рдорд┐рдд рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ myDir рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:

@Component({
  host: {
    '[myDir]': true
  },
  template: '...'
})
class MyComp {}

рд╡рд┐рдХрд▓реНрдк рез) рдФрд░ рд╡рд┐рдХрд▓реНрдк рей рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ:
рдПрдХ рд╣реА рддрддреНрд╡ рдкрд░ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдмреАрдЪ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА host рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рдкрд░рд┐рдЪрдп рдпрд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

  • рдбреЗрдЯрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рдПрдХ рдЪрдХреНрд░ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдХреЛрдгреАрдп рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП
    рдкреБрд░рд╛рдиреЗ рдорд╛рдиреЛрдВ рдХреЗ рдХрд╛рд░рдг рдбреАрдмрдЧ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдард┐рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ/"рдЬрд╛рдВрдЪ рдХреЗ рдмрд╛рдж рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдмрджрд▓ рдЧрдИ рд╣реИ" рддреНрд░реБрдЯрд┐рдпрд╛рдВред
  • рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдЗрдВрдЬреЗрдХреНрд╢рди рд▓рдЧрд╛рдиреЗ рд╡рд╛рд▓реЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд perf рдУрд╡рд░рд╣реЗрдб рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ
    рдФрд░ рд╕реАрдзреЗ рд╕рдВрд╡рд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд╡рд┐рдХрд▓реНрдк 2 рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ:

  • рд╣рд╛рдВ, gTouch рд╡рд░реНрдЧ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдиреНрдп рд╕рднреА рдирд┐рд░реНрджреЗрд╢
    NgModule s рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддреЗ рд╣реИрдВред

@ThomasBurleson рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдСрдлрд╝рд▓рд╛рдЗрди рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ ...

@tbosch рдореИрдВ рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ: рдПрдХ рджреЗрд╢реА рдХреЛрдгреАрдп рдЯреИрдЧ рдкреЗрд╢ рдХрд░реЗрдВ, рдЪрд▓рд┐рдП рдЗрд╕реЗ <ng-host> ред

рдиреЛрдЯ: @mhevery рдиреЗ https://github.com/angular/angular/issues/7546 рдореЗрдВ рдПрдХ <ng-host> рдЯреИрдЧ рдХреА рд╢реБрд░реБрдЖрдд рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рднрд▓реЗ рд╣реА рдореИрдВ рдпрд╣рд╛рдВ рдПрдХ рд╣реА рдЯреИрдЧ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ рдХреНрдпрд╛ рд╣реВрдВ рдкреНрд░рд╕реНрддрд╛рд╡ рдЕрд▓рдЧ рд╣реИ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрд╣рд╛рдВ рдЙрдард╛рдП рдЧрдП рдореБрджреНрджреЗ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред

ng-host рдЯреИрдЧ рдХреЛ рдирд┐рдпрдорд┐рдд рдирд┐рд░реНрджреЗрд╢/рдШрдЯрдХ рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдмрд▓реНрдХрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп "рдореИрдЬрд┐рдХ" рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛрдб рд╣реЛрдЧрд╛... ng-content , ng-container , рдЖрджрд┐ рдХреЗ рд╕рдорд╛рдиред ред,
рдЯреИрдЧ рдХреЗрд╡рд▓ рдШрдЯрдХ рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП "рд╕реВрдЪрдХ" рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬреЛ рдХрд┐ рд╕реАрдПрд╕рдПрд╕ :host рдЪрдпрдирдХрд░реНрддрд╛ рдХреЗ рд╕рдорд╛рди рд╣реИ ред

рдпрд╣ рдЕрд╕реНрдкрд╖реНрдЯ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рд╕реЗ рдмрдЪрддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ <ng-host> рдмреНрд▓реЙрдХ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛрдЧреА рдФрд░ рдЗрд╕реЗ рдЙрд╕ рдШрдЯрдХ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рд░реВрдЯ рдЯреИрдЧ/рдиреЛрдб рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдЧрд╛:

// Option 5: Use `<ng-host>`.. Very declarative and intuitive
@Component({
  selector: 'g-btn',
  template: `
    <!-- 
      Besides comments, having dom code inside the template but outside of a declared 
      ng-host code block would raise an error (hopefully at compile-time) .
    -->

    <ng-host role="button" g-touch> 
      <ng-content></ng-content>
    </ng-host>
  `
})

рд╡реИрд╕реЗ @tbosch , рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЖрдкрдХреЗ рдЬреБрдбрд╝рд╛рд╡ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд░ рдмрд╛рдХреА рд╕рднреА рдХреЗ рд╡рд┐рдЪрд╛рд░ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИрдВ, рдпрд╛ рдХреНрдпрд╛ рдпрд╣ рднреА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдирд┐рд░реНрджреЗрд╢ рдЕрдкрдиреЗ рдореЗрдЬрдмрд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВрдиреЗ рдХреБрдЫ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдерд╛ рдХрд┐ рдП) рд╣рдо рдЕрдкрдиреЗ рдХреЛрдб рд╕реЗ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ рдЕрдЧрд░ рд╣рдо рдмрд╛рдж рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ рдФрд░ рдмреА) рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ рд╣рд░ рдмрд╛рд░ рдЬрдм рд╣рдо рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╕реЗрдЯрдЕрдкред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЯреВрд▓рдЯрд┐рдк рдирд┐рд░реНрджреЗрд╢, рдЬреЛ рд╣рдорд╛рд░реЗ рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рддрддреНрд╡реЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рдФрд░ рд╣рдо рдбрд┐рд▓реЗ рдХреЛ рдбрд┐рдлреЙрд▓реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдПрдкреЗрдВрдб рдЯреВрдмреЙрдбреА (рдпрд╣ рдПрдХ рдХреЗрдВрджреНрд░реАрдХреГрдд рдХреЙрдиреНрдлрд┐рдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред рдЪреВрдВрдХрд┐ рдпрд╣ рдХреЗрдВрджреНрд░реАрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рд╣рд░ рдЬрдЧрд╣ рддреАрди рдпрд╛ рдЪрд╛рд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд░рдЦрдирд╛ рдерд╛, рдЬрд┐рд╕рдХрд╛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред рдФрд░ рдлрд┐рд░ рдмрд╛рдж рдореЗрдВ, рд╣рдо рдЙрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рджреВрд░ рдЪрд▓реЗ рдЧрдП (рд╕рд╛рдордЧреНрд░реА рдЯреВрд▓рдЯрд┐рдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛) рдФрд░ рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЯреВрд▓рдЯрд┐рдк рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрджрд▓рдирд╛ рдкрдбрд╝рд╛ред рдпрджрд┐ рд╣рдо рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ "рд▓рд┐рдкрдЯреЗ" рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП [mdTooltip] рдХреЛ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрдЬрд╛рдп рдЗрд╕рдХреЗ рд╣реЛрд╕реНрдЯ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЙрддрдирд╛ рд╣реА рд╕рд░рд▓ рд╣реЛрддрд╛ред

@MikeMatusz рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдорди рдореЗрдВ рднреА рдпрд╣реА рдерд╛, рдпрд╣рд╛рдБ https://github.com/angular/flex-layout/issues/162#issuecomment -290350270 рд╕реЗ рдореЗрд░рд╛ рд╕реНрдирд┐рдкреЗрдЯ рд╣реИред

@Directive({
  selector: 'fxLayoutFullPage',
  hostDirectives: [LayoutDirective],
  host: { 
    'fxLayout': 'column', 
    'style': 'min-height:100vh; background-color:yellow'
  }, 
}) class LayoutFullPageDirective {}

рдХреНрдпрд╛ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдбреЗрдХреЛрд░реЗрдЯрд░ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдЬреЛ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдХреЛ рддрддреНрдХрд╛рд▓ рдХрд░рддрд╛ рд╣реИ?
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
@HostDirective(LayoutDirective) myLayoutDirective: LayoutDirective;

рдпрд╣ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг-рд╕рдВрджрд░реНрдн рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ рдФрд░ рдШрдЯрдХ/рдирд┐рд░реНрджреЗрд╢ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдЦреЛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдЗрдирдкреБрдЯ рдФрд░ рдИрд╡реЗрдВрдЯ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рднреА рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдХрд╣рд╛рдБ рдЦрдбрд╝рд╛ рд╣реИ? рдореИрдВ Angular2/4 рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рдирдпрд╛ рд╣реВрдВ, рдФрд░ рдореИрдВ рдЬреЛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд╡рд╣ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдмрдирд╛рдирд╛ рд╣реИ рдЬреЛ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдХрдИ рдЕрдиреНрдп рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рддрд╛рдХрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп:

<button directiveA directiveB directiveC>BUTTON TEXT</button>

рдореИрдВ рдмрд╕ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдБ:

<button customDirectiveABC>BUTTON TEXT</button>

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдореВрд▓ рд░рдЪрдирд╛/рд╕реВрдЦрд╛рдкрдиред рд▓реЗрдХрд┐рди рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдБ рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ?

рдпрд╣ рднреА рджреЗрдЦреЗрдВ https://github.com/angular/flex-layout/issues/76#issuecomment -310509013

@ рд╕реЛрдпрдиреЙрдЧ , рдореИрдВ рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ рдпрд╣ рднреА рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рдЦрдбрд╝рд╛ рд╣реИред

рдореИрдВ рдХреЛрдгреАрдп рд╕рд╛рдордЧреНрд░реА рдФрд░ рдХреЛрдгреАрдп 2-рдбреНрд░реИрдЧреЗрдмрд▓ (рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдгреАрдп/рд╕рд╛рдордЧреНрд░реА # 1206 рдЕрднреА рддрдХ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреНрд░реИрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕рдВрд╡рд╛рдж рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛, рдЬрд╣рд╛рдВ рдореИрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ md-dialog-container рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ MdDialog рд╕реЗрд╡рд╛ рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЧрддрд┐рд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдХреЛрдгреАрдп 1.x рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдмрд╣реБрдд рдХрдард┐рди рд▓рдЧрддрд╛ рд╣реИред

@tbosch , @ThomasBurleson , рдСрдлрд╝рд▓рд╛рдЗрди рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдерд╛ рдЬрд┐рд╕ рдкрд░ рдЖрдкрдиреЗ рдереЙрдорд╕ рджреНрд╡рд╛рд░рд╛ рдХреЛрдгреАрдп/рд╕рд╛рдордЧреНрд░реА # 1206 рдореЗрдВ рдЙрдард╛рдП рдЧрдП рдореБрджреНрджреЛрдВ рдпрд╛ рд▓рдХреНрд╖реНрдпреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЪрд░реНрдЪрд╛ рдХреА рдереА? рдореИрдВ рд╕рд┐рд░реНрдл 1.6.x рдФрд░ 2+ рдврд╛рдВрдЪреЗ рдХреЗ рдмреАрдЪ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЕрдкрдирд╛ рд╕рд┐рд░ рд▓рдкреЗрдЯрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИрдВ? рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЗрд╕рдиреЗ рдХрд░реНрд╖рдг рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рдЗрд╕ рдкрд░ рдХреЛрдИ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рд╣рд╛рдБ рдЙрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

рдпрд╣ рдРрд╕реА рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рдмрд╣реБрдд рдЬрд░реВрд░рдд рд╣реИ, рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рд╕реНрддрд╛рд╡ рдКрдкрд░ рдХреА рдУрд░ рдЬрд╛рдПрдЧрд╛ред

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдЖрдЬ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореИрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ/рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рджреБрдЦреА рд╣реЛ рдЧрдпрд╛ред

+1
рдореЗрд░реЗ рд▓рд┐рдП рднреА рдРрд╕рд╛ :)
рдореИрдВ рдПрдХ рдХрд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдХрдИ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЦреЛрдЬ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП :

<my-cmp [myDirective]="content"
        [isOpen]="myCondition"
        customProp2="customClass"
        customProp1="customText">
 ...
</my-cmp>

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдореИрдВ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рдЙрди рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЛ рд▓рдкреЗрдЯрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдореИрдВ рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдХреЙрдкреА/рдкреЗрд╕реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдЙрдирдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреВрдВред

<my-cmp myCustomDirective>
</my-cmp>

рдФрд░ рдореЗрд░реЗ рдХрд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ

<ng-host [myDirective]="content"
        [isOpen]="myCondition"
        customProp2="customClass"
        customProp1="customText">
</ng-host>

рдЗрд╕ рдореБрджреНрджреЗ рдХреА рджреВрд╕рд░реА рд╡рд░реНрд╖рдЧрд╛рдВрда рдкрд░ рдЖ рд░рд╣рд╛ рд╣реИ! рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЗрддрдиреА рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреА, рдпрд╣ рд╣рдореЗрдВ рдПрдХ рд▓рд╛рдЦ рд░реИрдкрд░ рдмрдирд╛рдП рдмрд┐рдирд╛ рдЕрддреНрдпрдзрд┐рдХ рдХрдВрдкреЛрдЬреЗрдмрд▓ рдШрдЯрдХ рдФрд░ рдирд┐рд░реНрджреЗрд╢ рдмрдирд╛рдиреЗ рджреЗрддреА рд╣реИред рдЖрдкрдХреЗ рдкрд╛рд╕ рдореМрдЬреВрдж рдирд┐рд░реНрджреЗрд╢реЛрдВ рд╕реЗ рдХреЗрд╡рд▓ рдЙрд╕ рдШрдЯрдХ рдХреА рд░рдЪрдирд╛ рдХрд░реЗрдВ рдЬрд┐рд╕рдХреА рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рд░рд▓, рд╕реНрд╡рдЪреНрдЫ, рдкреНрд░рднрд╛рд╡реАред

@IgorMinar - рд╡реИрд╕реЗ рднреА рд╣рдо рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЖрдЧрд╛рдореА рд╕рдВрд╡рд░реНрджреНрдзрди рдХреЗ рд▓рд┐рдП рд░рдбрд╛рд░ рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдореИрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЦрд░рд╛рдм рдкреИрдЯрд░реНрди рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ рдпрд╛ рдирд╣реАрдВред рдХреЛрдИ рднреА?

@darkbasic - AFAIU, рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд┐рдирд╛, рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдХреЗрд╡рд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ рджреГрд╢реНрдп рдФрд░ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдореВрд▓ рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реИрдкрд░ рддрддреНрд╡ ( ng-container ) рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдирд╣реАрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд░реИрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдШрдЯрдХ рдкрд░ рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдг рд░рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдПрдХ рдЦрд░рд╛рдм рдкреИрдЯрд░реНрди рд╣реИред рдпрд╣ рдПрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

@bradlygreen рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА?

рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЗрд╕ рд░реЗрдкреЛ рдХреЗ рд╕рднреА рдЦреБрд▓реЗ рдореБрджреНрджреЛрдВ рдореЗрдВ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдЕрдиреБрд░реЛрдз (рдпрджрд┐ рд╢реАрд░реНрд╖ 5 рдирд╣реАрдВ рд╣реИ) рд╣реИ ... рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рд╣рдо рдбрд┐рдлреИрдХреНрдЯреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрдгреАрдп рдХреЗ рдкрддрди рдХреА рд░рд┐рдкреЛрд░реНрдЯ (рдЕрдиреБрднрд╡рдЬрдиреНрдп рдбреЗрдЯрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд) рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ ... рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдбреНрд░рд╛рдЗрд╡рд┐рдВрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╕рдореБрджрд╛рдп рдХреЛ рдирд╣реАрдВ рд╕реБрдирд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛; vue.js рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, рдЬрдореАрди рд╣рд╛рд╕рд┐рд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдХреЛрдгреАрдп рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЧрдП рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рднрд▓реЗ рд╣реА рд╡реЗ рд╣рд░ рдЙрд╕ рдЫреЛрдЯреА рдЪреАрдЬ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдЬреЛ рд╣рд░ рдХреЛрдИ рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХрдо рд╕реЗ рдХрдо рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдЕрдиреБрд░реЛрдзрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд░рдВрддрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред рдЗрддрдирд╛ рд▓рдВрдмрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рд╕реБрдирдирд╛ рдХрд┐рддрдирд╛ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реИ.. рдПрдХ рд╕рд╛рдзрд╛рд░рдг "рдирд╣реАрдВ, рд╣рдо рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ" рднреА рдирд╣реАрдВред

(рджреЗрдЦреЗрдВ "рдХреЛрдгреАрдп рдкрд░реНрдЪреА" рдЬреЗрдПрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдЕрдиреБрднрд╛рдЧ)

... рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдВрдЧреБрд▓рд░ / рд╡реАрдпреВ / рд░рд┐рдПрдХреНрдЯ / ... рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд░рд╛рдп рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░рдХреЛрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИрдВ ... рд▓рд╛рдЧреВ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рдПрдХ рд╕рд░рд▓ рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рд╕рдорд╛рдзрд╛рди) ... рдЗрд╕рд▓рд┐рдП рдХреЛрдгреАрдп рдХреЛрд░ рдЯреАрдо рдХреА рдареЛрд╕ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдмрд╣реБрдд рд╕реНрд╡рд╛рдЧрдд рд╣реЛрдЧрд╛ ... ЁЯеЗ

рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдИрдЯреАрдП рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рд╣рдо 2018 рдореЗрдВ рд░реЗрдВрдбрд░рд░ рдореЗрдВ рдЗрд╕ рд╢реНрд░реЗрдгреА рдХреА рдЪреАрдЬреЛрдВ рдХреЛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ 2018 рдореЗрдВ рдЪреАрдЬреЗрдВ рдХрд╛рдлреА рдмреЗрд╣рддрд░ рд╣реЛрдВрдЧреАред рд╣рдо рд╣рд╛рд░ рд░рд╣реЗ рд╣реИрдВ

рджреЗрдЦреЛ:

@somombo рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рдмрдХрд╡рд╛рд╕ рд╣реЛрдиреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рд╣реБрдИ рдереА

рдЬреЛ рд▓реЛрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдирдХреЗ рд╕рд╛рдорд╛рди рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рд▓реЗрдЦрдХ рдХрд╛ рдордЬрд╝рд╛рдХ рдЙрдбрд╝рд╛рдпрд╛ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдиреЗ рднреА рдЙрд╕реЗ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдирд╣реАрдВ рд▓рд┐рдпрд╛, рдкрд╕рдВрдж рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, рд╡рд╛рдЙ рдлреИрдирдмреЙрдп, рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рд╣реИрдВред

рддреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдХрд╛ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдпрд╣ рдореБрджреНрджрд╛ рдХреЛрдгреАрдп рдЯреАрдо рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╕рдВрднрд╡рддрдГ рд╕рдмрд╕реЗ рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИред

AngularHQ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╕реВрдЪреА рджреЗрдЦреЗрдВ (рдЕрдВрдХ рд╕рдВрдЦреНрдпрд╛ 8785 рджреЗрдЦреЗрдВ)

рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рд╕рдореБрджрд╛рдп рд╕реЗ рдмрд╣реБрдд рдЪрд░реНрдЪрд╛ рдФрд░ рд░реБрдЪрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдпрд╣ рдорд╛рдорд▓рд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп .. рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ _рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдХрднреА рдирд╣реАрдВ, рд╢рд╛рдпрдж рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡рд╛рд░реНрд╖рд┐рдХ рдХреЛрдгреАрдп рд╕рд░реНрд╡реЗрдХреНрд╖рдг рднрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреА рддрд░рд╣ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВрдЧреЗред

рд╣рдорд╛рд░реА рдПрдВрдЧреБрд▓рд░ рдЯреАрдо рдХреЛ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рд╕рднреА рдорд╣рд╛рди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рджреЗрдирд╛ рди рднреВрд▓реЗрдВ!

рдореИрдВ рднреА рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╡реЛрдЯ рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рджреБрдГрдЦ рдХрд╛ рдХрд╛рд░рдг рд░рд╣рд╛ рд╣реИред

@somombo рдХреГрдкрдпрд╛ рдЕрднреА рддрдХ AngularHQ рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рди рдкрдврд╝реЗрдВред рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╕реВрддреНрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ v6 рдЬрд╣рд╛рдЬреЛрдВ рдХреЗ рдмрд╛рдж рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдкрд░ рдлрд┐рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд▓реНрдж рд╣реА рдмреИрдВрдбрд╡рд┐рдбреНрде рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдХрдВрдкрд╛рдЗрд▓рд░/рдХреЛрд░ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдЪрд▓ рд░рд╣реЗ рдХрд╛рдо рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░реЗрдЧрд╛ред

рдпрд╣ рдПрдХ рддреНрд╡рд░рд┐рдд рд╕реБрдзрд╛рд░ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдареАрдХ рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо v6 рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕ рд╕рд╛рдорд╛рди рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЙрд╕реЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

@IgorMinar рдЖрдЗрд╡реА рдХрд╛рд░реНрдп рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдмрдирд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рд╛рдБ рдкрд┐рдЫрд▓реЗ v6.

@IgorMinar рдФрд░ @mhevery рдореИрдВ рдЗрд╕ рдмрд╛рдд рдкрд░ рдЬреЛрд░ рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рдХрд┐ рдореИрдВ рдХрд┐рддрдирд╛ рдЖрднрд╛рд░реА рд╣реВрдВ (рдФрд░ рд╣рдордореЗрдВ рд╕реЗ рдмрд╛рдХреА рднреА, рдореБрдЭреЗ рдпрдХреАрди рд╣реИ) рдХрд┐ рдЖрдкрдиреЗ рд╣рдореЗрдВ рдпрд╣ рдареЛрд╕ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреА рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреНрдпрд╛ рд╣реИрдВ рдФрд░ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреНрдпрд╛ рд╣реЛрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдареАрдХ рд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ "рддреНрд╡рд░рд┐рдд рд╕реБрдзрд╛рд░" рдХреНрдпрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рддрдереНрдп рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрд┐ рдпрд╣ рдПрдХ рддреНрд╡рд░рд┐рдд рд╕реБрдзрд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреА рдЪреАрдЬ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ, рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдгреАрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧреА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдЧреАред

рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рджреЛрдиреЛрдВ рдмрд╣реБрдд рд╡реНрдпрд╕реНрдд рд╣реИрдВ рдФрд░ рд╣рд░ рдПрдХ рдореБрджреНрджреЗ рдкрд░ рдЗрд╕ рддрд░рд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред
рдЗрд╕рд▓рд┐рдП рдЬрдм рднреА рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреА рд╣рдорд╛рд░реА рд╣рд╛рд░реНрджрд┐рдХ рдХреГрддрдЬреНрдЮрддрд╛ рд╣реИред рд╣рдо рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реИрдВ рдФрд░ рдХреЛрдгреАрдп v6 рдФрд░ рдЙрд╕рд╕реЗ рдЖрдЧреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ!

рд╕рднреА рдорд╣рд╛рди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдЖрдк рдШрдЯрдХ рд╡рд░реНрдЧ рдХреЛ рдирд┐рд░реНрджреЗрд╢ рд╡рд░реНрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдпрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рд╣реБрдб рдХреЗ рддрд╣рдд рдирд┐рд░реНрджреЗрд╢ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╢рд╛рдпрдж рдпрд╣ рдШрдЯрдХ рдореЗрдВ рддрд░реНрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

export class gBtn extends gTouch

@NateMay , рдЬреЛ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдХрдИ рдЯреБрдХрдбрд╝реЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИред

@NateMay рдЗрд╕рдХреЗ рд╕рд╛рде рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ - рдкрд╣рд▓рд╛, рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╡рд░реНрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рджреВрд╕рд░рд╛, рдЖрдкрдиреЗ рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЛ рддреЛрдбрд╝рд╛ рд╣реИред

рдмрд╕ рдореЗрд░реЗ рджреЛ рд╕реЗрдВрдЯ рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВред рдореИрдВ @uirouter/angular рдХреЗ рдиреЗрд╕реНрдЯреЗрдб рд░рд╛рдЬреНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдгреАрдп, рд╕рд╛рдордЧреНрд░реА рдФрд░ рдлреНрд▓реЗрдХреНрд╕-рд▓реЗрдЖрдЙрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╣реБ-рдкрд░рдд рдПрд╕рдкреАрдП рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдлрд┐рд░ рдШрдЯрдХ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдлреНрд▓реЗрдХреНрд╕ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛ рдмрд╣реБрдд рд╕реАрдорд┐рдд рд╣реИред

рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рдХрд░реЗрдВред

рдЗрд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП +1

рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИ ng-container , рдЬреЛ DOM рдореЗрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрдЧрд╛ред

рдореБрдЭреЗ рдЪреМрд░рд╛рд╣реЗ-рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА (рдЬреЛ рддрддреНрд╡реЛрдВ рдХреЛ рд╡реНрдпреВрдкреЛрд░реНрдЯ рдореЗрдВ рдкреНрд░рд╡реЗрд╢/рдЫреЛрдбрд╝рдиреЗ рдкрд░ рдИрд╡реЗрдВрдЯ рдЙрдард╛рддрд╛ рд╣реИ)ред рдореЗрд░реЗ рдкрд╛рд╕ intersector рдирд┐рд░реНрджреЗрд╢ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ enter() рдФрд░ leave() рдИрд╡реЗрдВрдЯ рд╣реИрдВ рдЬрдм рддрддреНрд╡ рджреГрд╢реНрдпрдорд╛рди/рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдШрдЯрдХ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдбреАрдЖрдИрд╡реА рдирд╣реАрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред

рддреЛ рдореИрдВрдиреЗ рдЬреЛ рдХрд┐рдпрд╛ рд╡рд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдерд╛ component.html :

<ng-container intersector (enter)="weCameOnScreen()" (leave)="byeBye()">
     ... components normal template ...
</ng-container>

рдлрд┐рд░ intersector.directive.ts рдирд┐рд░реНрджреЗрд╢ рдирд┐рд░реНрдорд╛рддрд╛ ElementRef рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред

    constructor(private intersectorElementRef: ElementRef) { ... }

рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдбреЛрдо рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдЖрдк рдХреЗрд╡рд▓ intersectorElementRef.nativeElement рдкрд░ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди ng-container рд▓рд┐рдП рдиреЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдиреЛрдб рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд╣реИ, рдФрд░ рдпрджрд┐ рдпрд╣ рд╣реИ рддреЛ рдореИрдВ рдПрдХ рд╕реНрддрд░ рдКрдкрд░ рдЬрд╛рддрд╛ рд╣реВрдВред

public ngAfterViewInit(): void 
{
    // if the directive is applied to an ng-container must go a level up
    this.domElement = (this.intersectorElementRef.nativeElement.nodeType == 8) ? this.intersectorElementRef.nativeElement.parentElement : this.intersectorElementRef.nativeElement;

   registerIntersector(this.domElement ...);

рдпрд╣ рд╕рднреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрднреА рдЗрд╕рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реВрдВред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЖрдИрд╡реАрд╡рд╛рдИ рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ рд╡реЗ рдЕрдм рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЯреВрдЯ рд╕рдХрддрд╛ рд╣реИред рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рдереА рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдирд┐рд░реНрджреЗрд╢ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдбреЛрдо рдиреЛрдбреНрд╕ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдпрд╛ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдирдХрд▓реА ' @HostBinding ' рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдХреНрдпрд╛ рд╣реИред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рдерд╛ред рдореИрдВ "рдЙрдЪреНрдЪ рдХреНрд░рдо", рдЕрдзрд┐рдХ рд╕рд╛рд░, рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд╕рдорд╛рд╣рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрди рдкреВрдЫрд╛, рдФрд░ рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛: https://stackoverflow.com/questions/51608645/abstract-away-leaflet-directive-in-custom-directive

рдЬреИрд╕рд╛ рдХрд┐ @mhevery рдиреЗ рдХрд╣рд╛ рдерд╛.. рд╣рдореЗрдВ рдзреИрд░реНрдп рд░рдЦрдиреЗ рдФрд░ рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг ivy (ng v7.0.0?) рдХреЗ рдЙрддрд░рдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рдЙрдирдХреЗ рд▓рд┐рдП рдЖрдЗрд╡реА рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛... рдЖрдЗрд╡реА рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдЯреАрдо рдХреЛ рдпрд╣ рдпрд╛рдж рджрд┐рд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд┐рддрдиреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рднреВрд▓рддреЗ

рдЗрд╕рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗ рд░рд╣реЗ рд╣реИрдВред рдореБрдЭреЗ рдЙрд╕ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рд╕рдВрдХрд▓реНрдк рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ рдлреИрдХреНрдЯреНрд░реА/рдХреНрд░рд┐рдПрдЯ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рд╣реИред

const componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentItem.component);

const componentRef = viewContainerRef.createComponent(componentFactory);
(<DynamicComponent>componentRef.instance).data = componentItem.data;
(<DynamicComponent>componentRef.instance).cssClassList = componentItem.cssClassList;
// Add directive to new component here
// componentRef.addDirective(someDirective)

рдХрд┐рд╕реА рднреА рдЕрджреНрдпрддрди???
рдореИрдВ рдПрдХ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ рдЬрд╣рд╛рдВ рдореИрдВ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рдХреБрдЫ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ, рдореБрдЭреЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ HTML рддрддреНрд╡ рдкрд░ рдирд┐рд░реНрджреЗрд╢ рдХреЛ рд╣рдЯрд╛рдиреЗ/рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╡ рд╣реИ рдпрд╛ рдЕрднреА рддрдХ рд╕рдорд╛рдзрд╛рди рд▓рдВрдмрд┐рдд рд╣реИ?

@micronyks ... рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рд╣рдореЗрдВ рдЖрдЗрд╡реА рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдмрдирд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдЬреЛрдбрд╝реЗред

@mlc-mlapis рд▓реЗрдХрд┐рди рдХреЛрдИ рдпреЛрдЬрдирд╛ рдЖрдИрд╡реАрд╡рд╛рдИ рдХрдм рдЖрдПрдЧреА? рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ?

@micronyks ... рд╢реЗрдбреНрдпреВрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреЛрдгреАрдп 7ред

рджреЛрд╕реНрддреЛрдВ рдпрд╣рд╛рдВ рдЙрдЪрд┐рдд рд╣реЛрдиреЗ рджреЗрдВ, рдХреЛрдгреАрдп рдЯреАрдо рдХрдИ рдмрдбрд╝реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдбрд╝реА рдореЗрд╣рдирдд рдХрд░ рд░рд╣реА рд╣реИ, рдЬрд┐рдирдХреА рдЕрддреНрдпрдзрд┐рдХ рдорд╛рдВрдЧ рд╣реИ, (PWA, SSR, Ivy, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд╕реНрдЯрдо рддрддреНрд╡) рдЕрдВрддрд┐рдо рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╡рд╛рд▓реА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рд╕рдордЭ рд╕рдХрддрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдмрд╣реБрдд рдХреБрдЫ рдмрдбрд╝реЗ рдЙрджреНрдпрдо (рдЬреИрд╕реЗ Microsoft) рд╣рдореЗрд╢рд╛ рд╕реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХрд╛ рдПрдХ рдХрд╛рд░рдг рд╣реИред рдХреБрд╢рд▓ рдХрд╕реНрдЯрдо рддрддреНрд╡реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЖрдЗрд╡реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреИрд╕реЗ рд╣реА рд╡реЗ рдЖрдЗрд╡реА рдХреЗ рд╕рд╛рде рд╣реЛрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ @mhevery рдиреЗ рдХрд╣рд╛, рдЗрдВрдЬрди рдЕрдзрд┐рдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдЧрддрд┐рд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдЗрд╕ рдмреАрдЪ, рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рдорд╛рдВрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп (рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╕реЗ рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ), рд╣рдо рдПрдВрдЧреБрд▓рд░ рдЯреАрдо рдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рддреЗрдЬреА рд▓рд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмреАрдЯрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдХреЗ, рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдбреЙрдХреНрд╕ рдХреЗ рд╕рд╛рде рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрджрд┐ред

рдЖрдЗрдП рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдПрдВрдЧреБрд▓рд░ рдЯреАрдо рдЗрддрдиреА рдмрдбрд╝реА рднреА рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рджрд░реНрдЬрди рд▓реЛрдЧ рд╣реИрдВ рдЬреЛ рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдПрдХ рднрдпрд╛рдирдХ рдврд╛рдВрдЪрд╛ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред

... рд╣рд╛рдВ, рдЕрдм рдереЛрдбрд╝рд╛ рдзреИрд░реНрдп рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдФрд░ рдЙрд╕ рдХреНрд╖рдг рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдЬрдм рд╣рдо рдЖрдЗрд╡реА рдХреЗ рд╕рд╛рде рдФрд░ рдЕрдзрд┐рдХ рдорджрдж рдХрд░ рд╕рдХреЗрдВ ... рдЬрдм рдХрдВрдкрд╛рдЗрд▓рд░ рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдХреБрдЫ рд╡рд┐рд╡рд░рдг рдбрд┐рдЬрд╛рдЗрди рдбреЙрдХреНрд╕ рдЙрдкрд▓рдмреНрдз рд╣реЛрдВрдЧреЗред

@avatsaev рдореИрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд╣реА рдЧрдИ рд╣рд░ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВред рдЖрдкрдХреЛ рдпрд╣рд╛рдВ рдЪреАрдЬреЛрдВ рдХреА рдорд╛рдВрдЧ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдЖрдк рдПрдВрдЧреБрд▓рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЙрди рдореБрджреНрджреЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рдЖрдк рдирд┐рдкрдЯ рд░рд╣реЗ рд╣реИрдВред

рдореИрдВ рдПрдХ рдмрд╣реБрдд рдЕрдиреБрднрд╡реА рдХреЛрдгреАрдп рдбреЗрд╡рд▓рдкрд░ рд╣реЛрдиреЗ рдХреЗ рдХрд░реАрдм рдХрд╣реАрдВ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЪреАрдЬреЗрдВ рдЧрд▓рдд рд▓рдЧрддреА рд╣реИрдВ рдпрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд╕рдордЭрд╛рдпрд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИред

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЖрдпрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрдХ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдШрдЯрдХ/рдирд┐рд░реНрджреЗрд╢ рдХреЛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдмрд┐рдирд╛ рд▓реАрдХреА рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрд╢рди рдХреЗред рдЗрд╕рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдЧрддрд┐рд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рдЬреЛ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрддрд╛ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рд╣реИред

рдореИрдВ рдХреЛрдгреАрдп рд╕рд╛рдордЧреНрд░реА рдФрд░ рдлреНрд▓реЗрдХреНрд╕-рд▓реЗрдЖрдЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдлреЙрд░реНрдо рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рдПрдХ JSON рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдлреЙрд░реНрдо рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдореБрдЭреЗ рд░рдирдЯрд╛рдЗрдо рдкрд░ рд╣реЛрд╕реНрдЯ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдлреНрд▓реЗрдХреНрд╕-рд▓реЗрдЖрдЙрдЯ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреАред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдгреАрдп рдХреА рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рдпрд╣ рдЙрд╕ рдХреЛрдб рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдмрд╣реБрдореБрдЦреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рдВрдмрд╛ рд░рд╛рд╕реНрддрд╛ рддрдп рдХрд░реЗрдЧрд╛ред рдмрд╕ рдПрдХ рдЕрдЪреНрдЫреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдмреЗрддрд╛рдм ;)

рдпрд╣ рдореЗрд░рд╛ рд╕рдЯреАрдХ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╣реИ

@NateMay рдпрд╣рд╛рдВ рдореЗрд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

@NateMay рдпрд╣рд╛рдВ рдореЗрд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рд╕рдордЭрд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ рдЧрддрд┐рд╢реАрд▓-рдХреНрд╖реЗрддреНрд░ред рдирд┐рд░реНрджреЗрд╢

dynamic-field.directive рдлреИрдВрд╕реА рд╕рд╛рдорд╛рди рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рд╕рд╛рде рдХрдИ рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рднреА рд╣реЛ рд░рд╣реА рд╣реИрдВред рдореИрдВрдиреЗ рдЕрднреА рд░реВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ CONTRIBUTING.md рдЬреЛрдбрд╝рд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕реЗрдЯрдЕрдк рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВред рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВред рдореИрдВ рдмрдбрд╝реЗ рдмрджрд▓рд╛рд╡ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрдХ рд╕реНрдерд┐рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

+1

рдЕрдм рддрдХ, рдореЗрд░реЗ рдХрд╛рдордХрд╛рдЬ рд╣реИрдВ, рдЙрди рд╕рднреА рдореЗрдВ рдбрд╛рдЙрдирд╕рд╛рдЗрдбреНрд╕ рд╣реИрдВред

  1. has-it , рдореЗрд░реЗ рдШрдЯрдХ рд╡рд░реНрдЧ рдХреЗ рдЕрдВрджрд░ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдирдИ рд╕рджрд╕реНрдп рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ, рдЙрд╕ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рддрд░реНрдХреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░реЗрдВ рдЬрдм рдЗрд╕рдХреЗ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП ElementRef, ViewContainerRef, TemplateRef ... рдХреЛрдИ рдЗрдВрдЬреЗрдХреНрд╢рди рдпреЛрдЧреНрдп рдЪрд░ рдЬреЛ рдпрд╣ рдкреВрдЫрддрд╛ рд╣реИ) , рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рдЬреАрд╡рдирдЪрдХреНрд░ рдХреЙрд▓рдмреИрдХ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ рдпрджрд┐ рдЙрд╕рдХреЗ рдкрд╛рд╕ рд╣реИ, рдЬреИрд╕реЗ ngInit() ngAfterViewInit() рд╡рд░реНрддрдорд╛рди рдШрдЯрдХ рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдЬреАрд╡рдирдЪрдХреНрд░ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдкрд░ред
@component(...)
class MyComponent {
   theDirective: TargetDirective;
   constructor(el: ElementRef) {
       this.theDirective = new TargeDirective(el);
   }

  ngOnInit() {
     this.theDirective.ngOnInit();
  }
  ...
}
  1. рдПрдХ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдПрдирдЬреА-рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рднреАрддрд░ рдШрдЯрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓рдкреЗрдЯреЗрдВ,
    <ng-template><div targetDirective>....</div></ng-template> рдЙрдиреНрд╣реЗрдВ ngAfterViewInit() рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВ рдЬреИрд╕реЗ:
const vf = this.viewContainerRef.createEmbeddedView(this.templateRef);
vf.detectChanges();

рдЗрд╕ рддрд░рд╣, рдХреЛрдгреАрдп рдЙрд╕ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ element рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдЕрдВрджрд░ рдореЗрд░реЗ рдШрдЯрдХ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд╛рдордЧреНрд░реА DOM рдЯреНрд░реА рдореЗрдВ рдореВрд▓ рдШрдЯрдХ рддрддреНрд╡ рдХреЗ рдареАрдХ рдмрд╛рдж рд╣реЛрддреА рд╣реИред

<my-component></my-component>
<div targetDirective>....</div>

рдпрд╣ рддрд░реАрдХрд╛ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ <route-outlet> рдХрд░рддрд╛ рд╣реИред

рд╕реНрдкрд╖реНрдЯ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рд╣реИрдВ

рдХреНрдпрд╛ рдХреЛрдИ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрдм рдЖрдЗрд╡реА рдХреЗ рд╕рд╛рде рд╕рдВрднрд╡ рд╣реИ? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИ?

рдЖрдЗрдП рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдПрдВрдЧреБрд▓рд░ рдЯреАрдо рдЗрддрдиреА рдмрдбрд╝реА рднреА рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рджрд░реНрдЬрди рд▓реЛрдЧ рд╣реИрдВ рдЬреЛ рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдПрдХ рднрдпрд╛рдирдХ рдврд╛рдВрдЪрд╛ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред

рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рд╕рдореБрджрд╛рдп рд╣реЛрдиреЗ рд╕реЗ рдпрд╣ рдмрдбрд╝рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпреЛрдЧрджрд╛рди рдХрд┐рдП рдЧрдП рд╕реБрдзрд╛рд░ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдмрд╣реБрдд рдХрдо рд╣реИред

рддреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╣рдо рдПрдХ рджрд░реНрдЬрди рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ рдЖ рдЧрдП рд╣реИрдВред

рдХреНрдпрд╛ рдХреЛрдИ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрдм рдЖрдЗрд╡реА рдХреЗ рд╕рд╛рде рд╕рдВрднрд╡ рд╣реИ? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИ?

рдЪреВрдВрдХрд┐ рдЕрднреА рддрдХ рдХреЛрдИ рд╢рдмреНрдж рдирд╣реАрдВ рдЖрдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рд╕рдмрд╕реЗ рдирдЬрд╝рджреАрдХреА рдЪреАрдЬрд╝ рдкреНрд░рджрд╛рди рдХрд░реВрдВрдЧрд╛, рдЬреЛ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдЖрдЗрд╡реА рдХреЗ рд╕рд╛рде рдорд┐рдХреНрд╕рд┐рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рд╣реИ: https://blog.nrwl.io/metaprogramming-higher-order-components -рдФрд░-рдорд┐рд╢реНрд░рдг-рд╕рд╛рде-рдХреЛрдгреАрдп-рдЖрдЗрд╡реА -75748fcbc310

рд▓реЗрдЦ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЗ рдореВрд▓ рдореБрджреНрджреЗ рдХрд╛ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди ... "рдлреАрдЪрд░реНрд╕" рдирд╛рдордХ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред

...рдЖрдк рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ Google рдХреЛ рдХреБрдЫ рднреА рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдПрдХ рдмреБрд░реЗ рд╕рдкрдиреЗ рдЬреИрд╕рд╛ рд╣реИред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╡реЗ рдЬрд▓реНрдж рд╣реА рдХреБрдЫ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЖрдЗрд╡реА рджрд╕реНрддрд╛рд╡реЗрдЬ рдЬрд╛рд░реА рдХрд░реЗрдВрдЧреЗ! :)

@nayfin рднреА рд╡рд┐рдЬреБрдЕрд▓ рдлреЙрд░реНрдо рдбрд┐рдЬрд╝рд╛рдЗрдирд░/рдмрд┐рд▓реНрдбрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣рд╛ рд╣реИ
рдФрд░ рддрдереНрдп рдкрд░ рдЕрдЯрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдХреЗ рдмрд╛рдж рдореЗрд░реЗ рдкрд╛рд╕ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝реЗ рдЧрдП div рдХреЛ рдирд┐рд░реНрджреЗрд╢ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдореБрдЭреЗ рдкрд╛рдЧрд▓ рдмрдирд╛рддрд╛ рд╣реИ .... рдХреБрдЫ MyDirectiveFactory::apply(HTMLElement) рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рдЕрдирдЬрд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЕрддреНрдпрдзрд┐рдХ рд╕реНрд╡рд╛рдЧрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЦреБрдж рдХреЛ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА div рдмрдирд╛рддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЕрдЧрд░ рдореБрдЭреЗ рдХреЛрдИ рдлреНрд▓реЗрдХреНрд╕-рд▓реЗрдЖрдЙрдЯ рдирд┐рд░реНрджреЗрд╢ рдЪрд╛рд╣рд┐рдП, рддреЛ рдореБрдЭреЗ рд╡рд╣ рдПрдХ-рдСрдл рдбрд┐рд╡ рднреА рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдореИрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЙрдиреНрд╣реЗрдВ рд╕реАрдзреЗ рд╣реЛрд╕реНрдЯ рддрддреНрд╡ рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВред

рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЬреИрд╕реЗ рдХрд┐:

const msked = componentFactory.createDirective(MaskedInputDirective);
msked.textMaskConfig = {};
this.elementRef.directives.add(msked);

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЕрдЧрд░ рдореБрдЭреЗ рдХреЛрдИ рдлреНрд▓реЗрдХреНрд╕-рд▓реЗрдЖрдЙрдЯ рдирд┐рд░реНрджреЗрд╢ рдЪрд╛рд╣рд┐рдП, рддреЛ рдореБрдЭреЗ рд╡рд╣ рдПрдХ-рдСрдл рдбрд┐рд╡ рднреА рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдореИрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЙрдиреНрд╣реЗрдВ рд╕реАрдзреЗ рд╣реЛрд╕реНрдЯ рддрддреНрд╡ рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВред

@tsteuwer рдЖрдк рд╣рдореЗрд╢рд╛ рдЕрдкрдиреЗ

рд▓реЗрдХрд┐рди рд╣рд╛рдБ, рдореИрдВ рдореЗрдЬрдмрд╛рди рддрддреНрд╡ рдХреЛ рдирд┐рд░реНрджреЗрд╢ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рднреА рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореЗрдЬрдмрд╛рди рддрддреНрд╡ рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдиреЗ рдФрд░ рдХреЛрдгреАрдп рд╕рд╛рдордЧреНрд░реА рд╕реАрдбреАрдХреЗ рд╕реЗ рд╕реАрдбреАрдХреЗрд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рдПрдХ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдПрдирдЬреА-рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рднреАрддрд░ рдШрдЯрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓рдкреЗрдЯреЗрдВ

рдЗрд╕рдХрд╛ рдПрдХ рд╣рд▓реНрдХрд╛ рд╕рд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ https://github.com/trotyl/angular-contrib рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдЬреЛрдбрд╝рдирд╛

host: { ngNoHost: '' }

рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реЗрдВрдбрд░рд░ рдХреЛ рд╢рд░реНрдорд╕рд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рддрддреНрд╡реЛрдВ рдХреЗ рдмрдЪреНрдЪреЛрдВ рдХреЛ ngNoHost рд╡рд┐рд╢реЗрд╖рддрд╛, рдмрд┐рдирд╛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдорд╛рди рдХрдорд┐рдпрд╛рдВ рд╣реИрдВред

рдЕрдлрд╝рд╕реЛрд╕ рдпрд╣ 3 рд╕рд╛рд▓ рдмрд╛рдж рднреА рдЦреБрд▓рд╛ рд╣реИред рддрддреНрд╡ рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдирд┐рд░реНрджреЗрд╢ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдб рдкреБрди: рдЙрдкрдпреЛрдЧ-рдХреНрд╖рдорддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВрдЧреЗред

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЕрдЧрд░ рдореБрдЭреЗ рдХреЛрдИ рдлреНрд▓реЗрдХреНрд╕-рд▓реЗрдЖрдЙрдЯ рдирд┐рд░реНрджреЗрд╢ рдЪрд╛рд╣рд┐рдП, рддреЛ рдореБрдЭреЗ рд╡рд╣ рдПрдХ-рдСрдл рдбрд┐рд╡ рднреА рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдореИрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЙрдиреНрд╣реЗрдВ рд╕реАрдзреЗ рд╣реЛрд╕реНрдЯ рддрддреНрд╡ рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВред

@tsteuwer рдЖрдк рд╣рдореЗрд╢рд╛ рдЕрдкрдиреЗ

рд▓реЗрдХрд┐рди рд╣рд╛рдБ, рдореИрдВ рдореЗрдЬрдмрд╛рди рддрддреНрд╡ рдХреЛ рдирд┐рд░реНрджреЗрд╢ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рднреА рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореЗрдЬрдмрд╛рди рддрддреНрд╡ рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдиреЗ рдФрд░ рдХреЛрдгреАрдп рд╕рд╛рдордЧреНрд░реА рд╕реАрдбреАрдХреЗ рд╕реЗ рд╕реАрдбреАрдХреЗрд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдЖрдк рд╕реАрдбреАрдХреЗрд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕ рддрд░рд╣ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
this.scrollable = рдирдпрд╛ CdkScrollable(this.elementRef, this.scrollDispatcher, this.zone);
this.scrollable.ngOnInit ();

рдЖрдкрдХреЛ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рднреА рдирд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
рдЕрдЧрд░ (рдпрд╣ред рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп) {
this.scrollable.ngOnDestroy ();
}

https://github.com/angular/angular/issues/8785#issuecomment -361004682 IgorMinar рдЖрдЗрд╡реА рдХрд╛рд░реНрдп рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдмрдирд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рд╛рдБ рдкрд┐рдЫрд▓реЗ v6.

@mhevery рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдмрд╛рдж: point_up_2:, рдЕрдм рдЬрдм рдЖрдЗрд╡реА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрддрд░ рдЪреБрдХрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рд╣рдо рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ (рдпрд╛ рдкрд╣рд▓реЗ) v10 рдХреА рд░рд┐рд▓реАрдЬрд╝ рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ рдХрд┐ рдХреМрди рд╕реЗ рдЕрдиреНрдп рд╡рд┐рдЪрд╛рд░ рдЗрд╕реЗ рдФрд░ рдкреАрдЫреЗ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рд╣реИрдВ?

рдпрджрд┐ рдпрд╣ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛрдгреАрдп рд╕рд░реНрд╡реЗрдХреНрд╖рдг https://twitter.com/angular/status/1252646001162088448?s=20 рдкрд░ рдереА, рддреЛ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рд╢реАрд░реНрд╖ рд╡реЛрдЯ рд╡рд╛рд▓реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реЛрдЧреАред

рдРрд╕реА рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╡реЛрдЯ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрдХрд┐рди @output рдФрд░ рдХрдИ рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП рд╡реЗрдзрд╢рд╛рд▓рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░ рд░рд╣рд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд╡рд░реНрддрдорд╛рди рдЧрддрд┐ рд╕реЗ рд╡реЗ рдХрднреА рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред

рдпрджрд┐ рдпрд╣ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛрдгреАрдп рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдкрд░ рдереА, рддреЛ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рд╢реАрд░реНрд╖ рдорддрджрд╛рди рд╡рд╛рд▓реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реЛрдЧреАред

рдмрдврд╝рд┐рдпрд╛ рд╡рд┐рдЪрд╛рд░ @princemaple!

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ, рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдХреЗ "рдЕрддрд┐рд░рд┐рдХреНрдд рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ" рдЦрдВрдб (рдкреНрд░рд╢реНрди 2 рдХреЗ) рдореЗрдВ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдпрд╣ рдХрд╣рд╛рдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ:

"How else should we improve Angular for you?"

рдЗрд╕рд▓рд┐рдП рдореВрд▓ рд░реВрдк рд╕реЗ, рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рджреЗрдЦрдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐, рдХреГрдкрдпрд╛ рдХреЗрд╡рд▓ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдХрд╛ рдЙрддреНрддрд░ рджреЗрдВ рдФрд░ рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛рдПрдВ, рдХрд┐ рдЖрдк "рд╕рдорд╕реНрдпрд╛ #8785" рдХреЛ рд▓рд╛рдЧреВ рдФрд░ рд╣рд▓ рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдкрд░рд╡рд╛рд╣ рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣рд╛рдВ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдХрд╛ рд╕реАрдзрд╛ рд▓рд┐рдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
https://goo.gle/angular-survey-2020

рдмрд▓ рдЖрдкрдХреЗ рд╕рд╛рде рд╣реЛ! рдореИрдВ

рдореИрдВ рднреА рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдХ рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХреБрдЫ рдкреНрд░рд╕реНрддрд╛рд╡ рдЙрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд╕рд░реНрд╡реЛрддреНрддрдо рддрд░реАрдХреЛрдВ рдХреА рддрд░рд╣ рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдЙрд╕ рд▓реЗрдЦ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреЛрдгреАрдп рдЯреАрдо рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рд╕реЗ рдмрд╛рдд рдХреА рд╣реИ

рдХреНрдпрд╛ рдХреЛрдИ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрдм рдЖрдЗрд╡реА рдХреЗ рд╕рд╛рде рд╕рдВрднрд╡ рд╣реИ? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИ?

рдЪреВрдВрдХрд┐ рдЕрднреА рддрдХ рдХреЛрдИ рд╢рдмреНрдж рдирд╣реАрдВ рдЖрдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рд╕рдмрд╕реЗ рдирдЬрд╝рджреАрдХреА рдЪреАрдЬрд╝ рдкреНрд░рджрд╛рди рдХрд░реВрдВрдЧрд╛, рдЬреЛ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдЖрдЗрд╡реА рдХреЗ рд╕рд╛рде рдорд┐рдХреНрд╕рд┐рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рд╣реИ: https://blog.nrwl.io/metaprogramming-higher-order-components -рдФрд░-рдорд┐рд╢реНрд░рдг-рд╕рд╛рде-рдХреЛрдгреАрдп-рдЖрдЗрд╡реА -75748fcbc310

рдФрд░ рдореВрд▓ рд░реВрдк рд╕реЗ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдХреЛрдгреАрдп рдХреЗ рдЖрдВрддрд░рд┐рдХ рдХреЗ рд╕рд╛рде рд╣реИрдХрд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрдкрдд рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХреЛрдИ рддрдХрдиреАрдХреА рдХрд╛рд░рдг рдореМрдЬреВрдж рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдореЗрд░реЗ рджрд┐рди-рдкреНрд░рддрд┐рджрд┐рди рдХреЛрдгреАрдп рдХреЗ рд╕рд╛рде рд╕реБрдзрд╛рд░ рдХрд░реЗрдЧрд╛ред

"рд╣рдордиреЗ рд╕рдореБрджрд╛рдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЕрдкрдиреЗ рдирд┐рд╡реЗрд╢ рдореЗрдВ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рд╡реГрджреНрдзрд┐ рдХреА рд╣реИред рдкрд┐рдЫрд▓реЗ рддреАрди рд╣рдлреНрддреЛрдВ рдореЗрдВ рд╣рдорд╛рд░реА рдУрдкрди рдЗрд╢реНрдпреВ рдХрд╛рдЙрдВрдЯ рдореЗрдВ рдлреНрд░реЗрдорд╡рд░реНрдХ, рдЯреВрд▓рд┐рдВрдЧ рдФрд░ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдореЗрдВ 700 рд╕реЗ рдЕрдзрд┐рдХ рдореБрджреНрджреЛрдВ рдХреА рдХрдореА рдЖрдИ рд╣реИред рд╣рдордиреЗ 2,000 рд╕реЗ рдЕрдзрд┐рдХ рдореБрджреНрджреЛрдВ рдХреЛ рдЫреБрдЖ рд╣реИ, рдФрд░ рд╣рдо рдЕрдЧрд▓реЗ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдмрдбрд╝реЗ рдирд┐рд╡реЗрд╢ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЕрдзрд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдореБрджрд╛рдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред" тАФ @StephenFluin
рдХреЛрдгреАрдп 10 рдШреЛрд╖рдгрд╛ рд╕реЗ

рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ v11 рдореЗрдВ рд░рджреНрдж рд╣реЛрддреЗ рджреЗрдЦреЗрдВрдЧреЗ? рдореИрдВ

рдЙрдирдХреА рд╕рдмрд╕реЗ рдЕрдиреБрд░реЛрдзрд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ "рд╕рдореБрджрд╛рдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ" (рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЦреБрд╢ рдХрд░рдиреЗ) рдХрд╛ рдЗрд╕рд╕реЗ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ !? (рдпрд╣ рдПрдХ )

рдЙрдиреНрд╣реЗрдВ рд╕реБрдиреЗрдВ!

рдмрд╕ рдЙрдореНрдореАрджреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЬреЛ рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдорд╛рдореВрд▓реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рд╣реИ рдФрд░ рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИрдВред рддреЛ рдЗрд╕ рддрд░рд╣ рдХреБрдЫ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рдореБрдЦ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

@mhevery рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдХреИрд╕реЗ рдЕрд▓рдЧ рд╣реИ?

@ k3nsei рдЗрд╕реЗ NgModule рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рджреЗрдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрдЦреНрдп рддрддреНрд╡ рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░рднреВрдд рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рддрд╛ рд╣реИред

@ mlc-mlapis рд╣рдорд╛рд░реЗ рдкрд╛рд╕ @HostBinding рдФрд░ @HostListener рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж @HostDirective рдЙрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛ред рдореИрдВрдиреЗ рдмрд╛рддрдЪреАрдд рджреЗрдЦреА рд╣реИ рдХрд┐ рдЖрдЗрд╡реА рдПрдкрд┐рд╕ рдРрд╕реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред

рдореЗрд░реЗ рд▓рд┐рдП рдореБрдЦреНрдп рдмрд┐рдВрджреБ рдХреБрдЫ рд╕рдВрд░рдЪрдирд╛ рдПрдкреАрдЖрдИ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдЬрдВрдХ рдХреЗ рд╕рд╛рде рдПрдХреНрд╕рдЯреЗрдВрд╢рди/рд▓рдХреНрд╖рдг рд░рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╡рд╛рд▓реЗ рдЕрдзрд┐рдХ рдбрд┐рдХреВрдкреНрдб рдХрдХреНрд╖рд╛рдУрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЪрдпрди рдпреЛрдЧреНрдп, рд╡рд┐рд╕реНрддрд╛рд░ рдпреЛрдЧреНрдп/рдмрдВрдзрдиреЗрд╡рд╛рд▓рд╛ред

@ k3nsei рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЧрддрд┐рд╢реАрд▓ рдирд╣реАрдВ рд╣реИ, рд╕рдЦреНрддреА рд╕реЗ рд╕реНрдерд┐рд░ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрддрдирд╛ рдХрдо рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

"рдмрд╕ рдЙрдореНрдореАрджреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЬреЛ рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдорд╛рдореВрд▓реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рд╣реИ рдФрд░ рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреБрдЫ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рдореБрдЦ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред" - https://github.com/angular/angular/issues/8785#issuecomment -654391378

рдЖрдкрдХреА рд╕рд╛рдордпрд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @mhevery.

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╣рдХрд░ рдмреЛрд▓реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рд╣рдо рдкрд░ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реА рдЪреБрдиреМрддреА рд╣реЛрдЧреАред рдпрджрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛, рддреЛ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЕрдм рддрдХ рд╣рдо рдХреБрдЫ рддреГрддреАрдп-рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛ рдЪреБрдХреЗ рд╣реЛрдВрдЧреЗ рдЬреЛ рдЗрд╕реЗ рдареАрдХ рд╕реЗ (рдХрд┐рд╕реА рддрд░рд╣) рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред [рдореЗрд░реА рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рдРрд╕рд╛ рдХреЛрдИ рдирд╣реАрдВ рд╣реИ]ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмрд┐рдирд╛ рдХрд╣реЗ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдХреБрдЫ рдХрдо рд▓рдЯрдХрдиреЗ рд╡рд╛рд▓реЗ рдлрд▓ рд╣реИрдВ (рдпрд╛ рдЕрдиреНрдпрдерд╛) рдХрд┐ рд╣рдо рдЗрд╕рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдо рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рдж рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЗ рдЧрдВрднреАрд░ рд╕рдВрдЪрд╛рд░ рдХреЛ рдорд╣рддреНрд╡ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЙрд╕ рд╕рдВрд╡рд╛рдж рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдиреЗ рд░рд╣реЗрдВрдЧреЗ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдмрдирд╛рдо рдЬреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрдерд╛рд░реНрдерд╡рд╛рджреА/рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░реА рд╕рдордЭ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдЗрд╡реА рдЗрд╕реЗ рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрддрд╛ рд╣реИред

@рдорд╣реЗрд╡рд░реА

@IgorMinar рдЖрдЗрд╡реА рдХрд╛рд░реНрдп рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдмрдирд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рд╛рдБ рдкрд┐рдЫрд▓реЗ v6.

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░реА рд╕рдордЭ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдЗрд╡реА рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрддрд╛ рд╣реИ

рдореЗрд░реА рдирдИ рд╕рдордЭ "рдЖрд╕рд╛рди" рдЕрднреА рднреА "рдЖрд╕рд╛рди" рдирд╣реАрдВ рд╣реИ

рдореЗрд░реА рдирдИ рд╕рдордЭ "рдЖрд╕рд╛рди" рдЕрднреА рднреА "рдЖрд╕рд╛рди" рдирд╣реАрдВ рд╣реИ

рдЖрдЗрд╡реА: рдЬрд┐рд╕ рдЪреАрдЬрд╝ рдкрд░ рдЖрдкрдиреЗ рджреЛ рд╕рд╛рд▓ рдмрд┐рддрд╛рдП рдФрд░ рдЕрднреА рднреА рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдХреЛрдгреАрдп рдореБрджреНрджреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

рдЖрдЗрд╡реА: рдЬрд┐рд╕ рдЪреАрдЬрд╝ рдкрд░ рдЖрдкрдиреЗ рджреЛ рд╕рд╛рд▓ рдмрд┐рддрд╛рдП рдФрд░ рдЕрднреА рднреА рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдХреЛрдгреАрдп рдореБрджреНрджреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

@pauldraper рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдореБрджреНрджреЗ рдЙрдирдХреЗ "рдореБрджреНрджреЗ" рдирд╣реАрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рд░рдбрд╛рд░ рдкрд░ рднреА рдирд╣реАрдВ рд╣реИ (рджреЗрдЦреЗрдВ рд░реЛрдбрдореИрдк https://angular.io/guide/roadmap)ред

рдореЗрд░реЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдХрд╣реАрдВ рдФрд░ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдЬреЛ рди рдХреЗрд╡рд▓ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╣реИ рдмрд▓реНрдХрд┐ рдПрдХ рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдЬрд┐рд╕рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рд╕рдореБрджрд╛рдп (рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛) рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рднрд╛рд╡ рд╣реИред

@pauldraper рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдореБрджреНрджреЗ рдЙрдирдХреЗ "рдореБрджреНрджреЗ" рдирд╣реАрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рд░рдбрд╛рд░ рдкрд░ рднреА рдирд╣реАрдВ рд╣реИ (рджреЗрдЦреЗрдВ рд░реЛрдбрдореИрдк https://angular.io/guide/roadmap)ред

@somombo рдореИрдВ рдЗрд╕ рддрдереНрдп рд╕реЗ рдирд┐рд░рд╛рд╢ рд╣реВрдВ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдЗрди рд╕рднреА рд╡рд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рдж рднреА рдЦреБрд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЖрдкрд╕реЗ рд╕рд╣рдордд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд░реЛрдбрдореИрдк рдкрд░ рдкрд╣рд▓рд╛ рдмрд┐рдВрджреБ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЦреБрд▓реЗ рдЬреАрдердм рдореБрджреНрджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдЙрди рд╕рднреА рдХреЛ рд░реЛрдбрдореИрдк рдкрд░ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХ рдЕрд░реНрде рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд╣реИ рдирд╛? рдпрд╣ рдореБрджреНрджрд╛ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рд╡реЛрдЯ рджреЗрдиреЗ рд╡рд╛рд▓реЗ (рдпрд╛ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рд╡реЛрдЯ рджреЗрдиреЗ рд╡рд╛рд▓реЗ) рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЖрдЦрд┐рд░рдХрд╛рд░ рд╕реБрд▓рдЭрд╛ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд░реЛрдбрдореИрдк рдкрд░ рдкрд╣рд▓рд╛ рдмрд┐рдВрджреБ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЦреБрд▓реЗ рдЬреАрдердм рдореБрджреНрджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдЙрди рд╕рднреА рдХреЛ рд░реЛрдбрдореИрдк рдкрд░ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХ рдЕрд░реНрде рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд╣реИ рдирд╛? рдпрд╣ рдореБрджреНрджрд╛ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рд╡реЛрдЯ рджреЗрдиреЗ рд╡рд╛рд▓реЗ (рдпрд╛ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рд╡реЛрдЯ рджреЗрдиреЗ рд╡рд╛рд▓реЗ) рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЖрдЦрд┐рд░рдХрд╛рд░ рд╕реБрд▓рдЭрд╛ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдирд╣реАрдВ, рдпрд╣ рд╕рд┐рд░реНрдл рдЗрдЪреНрдЫрд╛рдзрд╛рд░реА рд╕реЛрдЪ рд╣реИ, https://github.com/angular/angular/issues/5689 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдврд╝реЗрдВ, "рджреГрдврд╝рддрд╛ рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд░реВрдкреЛрдВ" рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЛрдИ рднреА рд╕рдВрдХреЗрдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рдХрд┐рд╕реА рднреА рд╕рдмрд╕реЗ рдКрдкрд░ рд╡рд╛рд▓реЗ рдореБрджреНрджреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рднрд╡рд┐рд╖реНрдп

@pauldraper рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдореБрджреНрджреЗ рдЙрдирдХреЗ "рдореБрджреНрджреЗ" рдирд╣реАрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рд░рдбрд╛рд░ рдкрд░ рднреА рдирд╣реАрдВ рд╣реИ (рджреЗрдЦреЗрдВ рд░реЛрдбрдореИрдк https://angular.io/guide/roadmap)ред

@somombo рдореИрдВ рдЗрд╕ рддрдереНрдп рд╕реЗ рдирд┐рд░рд╛рд╢ рд╣реВрдВ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдЗрди рд╕рднреА рд╡рд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рдж рднреА рдЦреБрд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЖрдкрд╕реЗ рд╕рд╣рдордд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд░реЛрдбрдореИрдк рдкрд░ рдкрд╣рд▓рд╛ рдмрд┐рдВрджреБ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЦреБрд▓реЗ рдЬреАрдердм рдореБрджреНрджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдЙрди рд╕рднреА рдХреЛ рд░реЛрдбрдореИрдк рдкрд░ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХ рдЕрд░реНрде рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд╣реИ рдирд╛? рдпрд╣ рдореБрджреНрджрд╛ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рд╡реЛрдЯ рджреЗрдиреЗ рд╡рд╛рд▓реЗ (рдпрд╛ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рд╡реЛрдЯ рджреЗрдиреЗ рд╡рд╛рд▓реЗ) рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЖрдЦрд┐рд░рдХрд╛рд░ рд╕реБрд▓рдЭрд╛ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╡рд╣реА рд╕рдм .. рдореИрдВ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ.. рдпрд╣ рдореБрджреНрджрд╛ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝рд╛ рдЕрд╡рд░реЛрдзрдХ рд░рд╣рд╛ рд╣реИред рддреЛ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рд╕рдордп рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЬрд╛ рд░рд╣реА рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдмрд╛рдХреА рд╕рднреА рдХреЛ рд╢реБрднрдХрд╛рдордирд╛рдПрдБред

рдореИрдВ рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ "рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди" рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдирд╛рдо рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдкрд░ рдХрд╛рдо рдХрд░реЗ, рдФрд░ рдШрдЯрдХреЛрдВ рддрдХ рд╕реАрдорд┐рдд рди рд╣реЛред рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдЕрдиреНрдп рдирд╛рдо "рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрджреЗрд╢" рдпрд╛ "рд╕рдВрд▓рдЧреНрди рдирд┐рд░реНрджреЗрд╢" рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдШрдЯрдХ рдпрд╛ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдореЗрдЬрдмрд╛рди рддрддреНрд╡ рдкрд░ рдирд┐рд╣рд┐рдд/рд╕рдВрд▓рдЧреНрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕реЗ рдХрдИ рдмрд╛рд░ рдЪрд╛рд╣рддрд╛ рдерд╛, рдореБрдЦреНрдпрддрдГ рдХреНрдпреЛрдВрдХрд┐ рд░рдЪрдирд╛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреЛрдгреАрдп рдореЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдХреНрд▓реАрдирд░ рд░реВрдк рд╣реИред рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдХреНрд▓рдВрдХреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдПрдХрд╛рдзрд┐рдХ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдирд╣реАрдВ рд╣реИ, рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдХреЛрдгреАрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, рдФрд░ рдЕрдиреНрдп рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдкрддреНрддреА рд╡рд░реНрдЧ рдореЗрдВ "рдкреБрдирдГ рдХрдиреЗрдХреНрдЯ" рд╣реЛрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред

рдореИрдВ рдХрд▓реНрдкрдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ "рдирд┐рд╣рд┐рдд/рд╕рдВрд▓рдЧреНрди рдирд┐рд░реНрджреЗрд╢" рдПрдХ рдШрдЯрдХ-рд╕реНрдерд╛рдиреАрдп рдпрд╛ рдирд┐рд░реНрджреЗрд╢-рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢ рддрддреНрдХрд╛рд▓ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдирд┐рд░реНрджреЗрд╢ рдЪрдпрдирдХрд░реНрддрд╛ рдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдореЗрдЬрдмрд╛рди рддрддреНрд╡ рдкрд░ рддрддреНрдХрд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

@Directive({
  selector: 'app-popup',
  attachDirectives: [
    FocusAreaDirective
  ]
})
export class PopupDirective {

  // Attached directives can be injected, just like template-declared directives today
  constructor(public focusArea: FocusAreaDirective) {
  }

}

рд╕рдВрд▓рдЧреНрди рдирд┐рд░реНрджреЗрд╢ рдкрд░ @Input() рдФрд░ @Output() рдЧреБрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╕рдВрд▓рдЧреНрди рдирд┐рд░реНрджреЗрд╢ рдкрд░ рдЬреАрд╡рдирдЪрдХреНрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╣реЛрд╕реНрдЯ рдШрдЯрдХ рдЬреАрд╡рдирдЪрдХреНрд░ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдВрд▓рдЧреНрди рдирд┐рд░реНрджреЗрд╢ рдореЗрдЬрдмрд╛рди рддрддреНрд╡ рд╕реЗ рднреА рдЬреБрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ, рдпрд╣ рдЖрдЬ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ-рдШреЛрд╖рд┐рдд рдирд┐рд░реНрджреЗрд╢ рдХреА рддрд░рд╣ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдирд┐рд░реНрджреЗрд╢ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд▓реАрдирд░/рд╕рд░рд▓ рдШрдЯрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ, рдХреЛрдгреАрдп рдХреЛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд╛рдн рдкреНрд░рджрд╛рди рдХрд░реЗрдЧреАред

рдЖрдЬ, рдЖрдкрдХреЗ рдкрд╛рд╕ 2 рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдпрджрд┐ рдЖрдк рдЗрд╕реА рддрд░рд╣ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:

  • рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣рдореЗрд╢рд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ рдПрдХ рд╕рд╛рде рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП; рдФрд░ рдпрджрд┐ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрджреЗрд╢ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдлреЗрдВрдХ рджреЗрдВред рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрджреЗрд╢ рдПрдХ рд╣реА рддрддреНрд╡ рдкрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕рдВрд▓реЗрдЦрди рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЧрдбрд╝рдмрдбрд╝ рд╣реИ, рдФрд░ рдЕрддрд┐рд░реЗрдХ рдХреЗ рдХрд╛рд░рдг рдПрдХ рдордЬрдмреВрдд рдПрдкреАрдЖрдИ рдпрд╛ рдЕрдиреБрдмрдВрдз рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрдпрдерд╛ рднрдпрд╛рдирдХ рдирд╣реАрдВ рд╣реИред
  • рдореЗрдЬрдмрд╛рди рдирд┐рд░реНрджреЗрд╢ рдХреЗ рднреАрддрд░ рд╕рдВрд▓рдЧреНрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рддрддреНрдХрд╛рд▓ рдХрд░реЗрдВ, рдФрд░ рдЖрдВрддрд░рд┐рдХ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдкреИрд░рд╛рдореАрдЯрд░, @ рдЗрдирдкреБрдЯ/ @ рдЖрдЙрдЯрдкреБрдЯ рдЧреБрдг, рд╣реЛрд╕реНрдЯ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ, рдФрд░ рдЬреАрд╡рди рдЪрдХреНрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ

рдЗрд╕реЗ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХрднреА-рдХрднреА рд╕реНрд╡рдЪреНрдЫ + рд╕рд░рд▓ рдШрдЯрдХ рдЙрдкрдпреЛрдЧ рдФрд░ рд╕реНрд╡рдЪреНрдЫ + рд╕рд░рд▓ рдШрдЯрдХ рд╕рдВрд▓реЗрдЦрди рдХреЗ рдмреАрдЪ рдПрдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╡реНрдпрд╛рдкрд╛рд░ рдмрдВрдж рдХрд░ рджреЗрддреА рд╣реИред

@рдЬреЙрдирдХреНрд░рд┐рдо
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдкрдХреЗ рдХрд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдЗрдирдкреБрдЯ рд╣реЛрдВрдЧреЗ, рдФрд░ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрд▓рдЧреНрди рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╢рд╛рдпрдж рдпрд╣ рдирд┐рд░реНрджреЗрд╢ рдбреЗрдХреЛрд░реЗрдЯрд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ host рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рдорд╛рди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

@amakhrov : рдЕрдЪреНрдЫрд╛ рдмрд┐рдВрджреБ - рдореИрдВрдиреЗ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдЗрдирдкреБрдЯ рдХреЛ рдмрд╛рд╣рд░ рдХрд░ рджрд┐рдпрд╛ред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдореБрдЭреЗ рд╕рдВрд▓рдЧреНрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ (рдпрд╛ рдЖрдЙрдЯрдкреБрдЯ) рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ - рд╡реЗ (рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ) рдХрдВрдкреЛрдЬреЗрдмрд▓ рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдЗрдирдкреБрдЯ (рдпрд╛ рдЖрдЙрдЯрдкреБрдЯ) рдорд╛рди рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдмрд╛рдзреНрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдореВрд▓ рдирд┐рд░реНрджреЗрд╢ (рдпрд╛ рдШрдЯрдХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдпрд╛ рддреЛ рдирд╛рдордХрд░рдг рд╕рдВрдШрд░реНрд╖ рдпрд╛ рдирд╛рдордХрд░рдг рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рдореБрджреНрджреЗ рд╣реИрдВ (рдЬреЛ рдореИрдВ рд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ рдбрд┐рдЬрд╛рдЗрди рдХрд░рддреЗ рд╕рдордп рдмрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛), рдпрд╛ рдЬрдм рдЗрдирдкреБрдЯ рдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдХреЗ рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдирд┐рд░реНрджреЗрд╢, рдФрд░ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдкрд░ рдирдП рдЗрдирдкреБрдЯ рдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдЧреБрдг рдмрдирд╛рдПрдВ рдЬреЛ рд╕рдВрд▓рдЧреНрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд╕реМрдВрдкрддреЗ рд╣реИрдВред

рдореИрдВ рд╕рд╣реА рдЦрдбрд╛ рд╣реВрдБред
рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрдм рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реЛрдбрдореИрдк рдХреЗ "рднрд╡рд┐рд╖реНрдп" рдЦрдВрдб рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд╕реВрдЪреАрдмрджреНрдз рд╣реИред рджреЗрдЦреЗрдВ https://angular.io/guide/roadmap#support -adding-directives-to-host-elements

рддрддреНрд╡реЛрдВ рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЪрд▓реА рдЖ рд░рд╣реА рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдореЗрдЬрдмрд╛рди рддрддреНрд╡реЛрдВ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдирд╛ рд╣реИред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧреАред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдПрдкреАрдЖрдИ, рд╢рдмреНрджрд╛рд░реНрде рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░рдпрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдЪреВрдВрдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрднреА рджреЗрдЦрд╛ рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕реЗ рдХрдм рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╣реИ, рдФрд░ рдПрдХ рд╕рд╛рд░реНрдердХ рдФрд░ рдЖрд╢реНрд╡рд╕реНрдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЗрд╢рд╛рд░рд╛ рд╣реИред рдореИрдВ рдЕрдкрдиреА рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдХреЛ рдкрд╛рд░ рдХрд░рддрд╛ рд░рд╣реВрдВрдЧрд╛ред

рдЗрд╕реЗ рд╡рд╣рд╛рдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЯреАрдо рдХреЛ рдзрдиреНрдпрд╡рд╛рдж! ЁЯЩПЁЯП╛

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

jeffbcross picture jeffbcross  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

igorzg picture igorzg  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

escardin picture escardin  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alxhub picture alxhub  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

vladimir-ivanov picture vladimir-ivanov  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ