Added ng-let directive
This commit is contained in:
17
src/app/directives/directives.module.ts
Normal file
17
src/app/directives/directives.module.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import { NgModule } from '@angular/core';
|
||||
|
||||
import { NgLetDirective } from './ng-let.directive';
|
||||
|
||||
const exportedDirectives = [
|
||||
NgLetDirective
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
declarations: [
|
||||
...exportedDirectives
|
||||
],
|
||||
exports: [
|
||||
...exportedDirectives
|
||||
]
|
||||
})
|
||||
export class DirectivesModule { }
|
||||
34
src/app/directives/ng-let.directive.ts
Normal file
34
src/app/directives/ng-let.directive.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import {
|
||||
Directive,
|
||||
Input,
|
||||
OnInit,
|
||||
TemplateRef,
|
||||
ViewContainerRef
|
||||
} from '@angular/core';
|
||||
|
||||
export class NgLetContext {
|
||||
$implicit: any = undefined;
|
||||
ngLet: any = undefined;
|
||||
}
|
||||
|
||||
@Directive({
|
||||
// tslint:disable-next-line:directive-selector
|
||||
selector: '[ngLet]'
|
||||
})
|
||||
export class NgLetDirective implements OnInit {
|
||||
private readonly _context = new NgLetContext();
|
||||
|
||||
@Input()
|
||||
set ngLet(value: any) {
|
||||
this._context.$implicit = this._context.ngLet = value;
|
||||
}
|
||||
|
||||
constructor(
|
||||
private readonly _vcr: ViewContainerRef,
|
||||
private readonly _templateRef: TemplateRef<NgLetContext>
|
||||
) { }
|
||||
|
||||
ngOnInit(): void {
|
||||
this._vcr.createEmbeddedView(this._templateRef, this._context);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user