1.0.14 • Published 4 years ago

ng-router-outlet-comm v1.0.14

Weekly downloads
4
License
ISC
Repository
github
Last release
4 years ago

The directive provides communication between parent and child over router outlet.

Angular does not support using @Input and @Output between parent and child if the child is a routed child. This directive provides a simple way for communication:     to send an event - use EventEmitter     to receive an event - provide a function

parent.component.ts - provide event emitter and a function

class ParentComponent {
  sendToChildEmitter = new EventEmitter();

  onChildEvent(data) {
    // your logic here
  }

parent.component.html - place the directive in the router-outlet element (router-outlet can be used since it is a regular dom element)

<router-outlet [ngRouterOutletComm]="{ type: 'parent', sender: sendToChildEmitter, receiver: onChildEvent.bind(this) }"></router-outlet>

child.component.ts - provide event emitter and a function

class ChildComponent {
  sendToParentEmitter = new EventEmitter();

  onParentEvent(data) {
    // your logic here
  }

child.component.html - place the directive somewhere in your child template

  <ng-container [ngRouterOutletComm]="{ type: 'child', sender: sendToParentEmitter, receiver: onParentEvent.bind(this) }"></ng-container>

Installing the directive:

npm i ng-router-outlet-comm

To declare the directive in your project, import 'NgRouterOutletCommModule' either in the SharedModule or in the module you use it. example of sending data from child to parent:

this.sendToParentEmitter.emit({ name: 'John' });

How the directive operates. In javascript you can dispatch and listen to events on dom elements. The directive do it by using the dom element itself. The 2 directive instances, one for the parent and one for the client, dispatch and listen to events on that dom element in order to communicate between themselves.

You do not need to worry about garbage cleaning. The directive implements ngOnDestroy (it can be done on directives as well), and once the component is destroyed then angular invokes the directive's ngOnDestroy function which removes any listeners.

1.0.14

4 years ago

1.0.13

4 years ago

1.0.12

4 years ago

1.0.11

4 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago