Guest User

Untitled

a guest
May 22nd, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. <div [myAttrDirective]="param"></div>
  2.  
  3. import {
  4. Directive,
  5. Input,
  6. ViewContainerRef,
  7. ComponentRef,
  8. ComponentFactoryResolver,
  9. } from "@angular/core";
  10. import { MyComponent } from "./my-component";
  11.  
  12. @Directive({ selector: "[myAttrDirective]" })
  13. export class AttrDirective {
  14. @Input()
  15. public set AttrDirective(attrDirective: any) {
  16. const factory = this.componentFactoryResolver.resolveComponentFactory(
  17. MyComponent,
  18. );
  19.  
  20. attrDirective.forEach((element, index) => {
  21. const componentRef: ComponentRef<
  22. MyComponent
  23. > = this.viewContainer.createComponent(factory);
  24.  
  25. const myComponent: MyComponent = componentRef.instance;
  26. myComponent.setInformation({ element });
  27. });
  28. }
  29.  
  30. constructor(
  31. private viewContainer: ViewContainerRef,
  32. private componentFactoryResolver: ComponentFactoryResolver,
  33. ) {}
  34. }
  35.  
  36. <div *myStrDirective="params"></div>
  37.  
  38. import {
  39. Directive,
  40. Input,
  41. ViewContainerRef,
  42. ComponentRef,
  43. ComponentFactoryResolver,
  44. } from "@angular/core";
  45. import { MyComponent } from "./my-component";
  46.  
  47. @Directive({ selector: "[myStrDirective]" })
  48. export class StrDirective {
  49. @Input()
  50. public set StrDirective (strDirective : any) {
  51. const factory = this.componentFactoryResolver.resolveComponentFactory(
  52. MyComponent,
  53. );
  54.  
  55. strDirective .forEach((element, index) => {
  56. const componentRef: ComponentRef<
  57. MyComponent
  58. > = this.viewContainer.createComponent(factory);
  59.  
  60. const myComponent: MyComponent = componentRef.instance;
  61. myComponent.setInformation({ element });
  62. });
  63. }
  64.  
  65. constructor(
  66. private viewContainer: ViewContainerRef,
  67. private componentFactoryResolver: ComponentFactoryResolver,
  68. ) {}
  69. }
Add Comment
Please, Sign In to add comment