Wie kann ich mich bei einem Input einer Komponente in Angular2 aus einer Direktive registrieren?Senden von Daten an Angular2-Komponente aus einer Direktive
Um genau zu sein, weiß ich bereits über this solution, aber ich möchte dies ohne Elternumhüllung tun.
Ich habe diesen Snippet-Code von Angular2 Website, aber ich kann es nicht auf die Komponente zum Senden von Daten an der Arbeit:
// Directive
import { Directive, ElementRef, Input, Output, EventEmitter } from '@angular/core';
@Directive({ selector: '[dirTest]' })
export class dirTestDirective {
@Output() refresh = new EventEmitter<number>();
constructor(private element: ElementRef) {
setInterval(() => {
this.refresh.emit(Math.random());
}, 1000);
}
}
// Component
import {
Input,
Output,
Component,
OnChanges,
SimpleChanges,
} from '@angular/core';
@Component({
selector: 'simple',
template: '<div></div>',
})
export class SimpleComponent implements OnChanges {
@Input() refresh: number;
// This never gets triggered
ngOnChanges(changes: SimpleChanges) {
console.log(changes);
}
}
<!-- Get this together -->
<simple dirTest></simple>
Schließlich ich mit dieser Lösung endete, die nicht ist so schlecht, aber ich denke immer noch, dass input
besser ist.
Bitte, wenn jemand eine bessere Lösung post hat.
http://plnkr.co/edit/FZsIfLfvtf3EjkGGGBlC
wenn Sie sagen, ‚es nicht die Arbeit machen kann‘ Sie meinen, Sie sehen nicht die Konsolenprotokoll? – happyZZR1400
Nein. Sie werden nie gebunden, ich weiß, dass ich einen Callback draußen definieren kann und setze ihn auf die 'Simple' Komponente, um Daten von' Directive' zu senden und in 'Simple' Eingaben zu senden, aber ich möchte die abonnieren Eingabe direkt aus 'dirTest'. – PRAISER