An open API service indexing awesome lists of open source software.

https://github.com/rxlabz/ng2_compocom


https://github.com/rxlabz/ng2_compocom

Last synced: over 1 year ago
JSON representation

Awesome Lists containing this project

README

          

# Communication entre composants parent-enfant

## @Input

- parent -> enfant : @Input()

Définition d'une proprieté publique ou d'un setter(/getter) annotée `@Input()`

```typescript
@Component({
selector: 'app-compo-enfant',/* ... */
})
export class CompoEnfantComponent {
@Input() nom: string;
}
```

Les propriétés @Input peuvent être renseigné via l'attribut du même nom dans le template html du composant parent.

```html

```

## @Output

- enfant -> parent : @Output()

Pour communiquer avec on parent, un composant peut utiliser des EventEmitter.
Les EventEmitters sont en fait des "sujets observables" :
c'est un tuyau, ou plutôt un flux, que l'élement enfant expose pour envoyer des informations.

Les EventEmitters sont [génériques](), chacun doit donc typer les "events" qu'il emettra.
Il ne s'agit pas là d'évenements DOM, en fait, il s'agit tout simplement d'une donnée que l'on souhaite transmetre.

```typescript
@Output() onNewString: EventEmitter = new EventEmitter();
```
Pour envoyer des données, aka ajouter des informations aux flux, un eventEmitter expose une méthode next(param:T).

```typescript
//..
this.onNewString.next(text);
```

Pour se brancher aux flux, on ajoute un écouteur `(evenement)` dans le template parent.
Le handler de cet évenement a accès aux données envoyés via `$event`.

```html

```

## Extras

### pipe

```typescript
{{msg.date | date}}
```

## Installation

This project was generated with [angular-cli](https://github.com/angular/angular-cli) version 1.0.0-beta.16.

```bash
npm install

ng serve
```