Lets sagen, ich habe eine KomponentengModel in benutzerdefinierten Komponente Arbeit nur einen Weg
const DEFAULT_VALUE_ACCESSOR = CONST_EXPR(new Provider(
NG_VALUE_ACCESSOR, {useExisting: forwardRef(() => MyComp), multi: true}));
@Component({
selector: 'my-comp',
template: `
<another-one></another-one>
`,
providers: [DEFAULT_VALUE_ACCESSOR]
und jetzt, wenn ich die Komponente wie:
@Component({
selector: 'app',
template: `<my-comp [(ngModel)]="someValue"></my-comp>
<input [(ngModel)]="someValue" />`
})
class App {
someValue: number = 5
}
Der Wert der <my-comp>
Komponente übergeben wird, jedoch Wenn danach der Wert innerhalb der Eingabe geändert wird, wird ngModel
aktualisiert, aber nicht <my-comp>
. Gibt es noch etwas, das ich konfigurieren muss?
ok, aber nach wie vor, wenn ngModel wird von der Eingabe geändert, was wird mir in der mitteilen, dass der Wert geändert wird? Ich möchte ngModel und nicht irgendeinFeld –
Bryant11
verwenden. '[(NgModel)] =" someValue "' ändert 'someValue' in' App'. Angular Change Detection übergibt den neuen Wert an 'someField' in' MyComp' wegen '[someField] =" someValue "'. Jedes Mal, wenn sich 'someValue' ändert, aktualisiert 'Angular' 'someField' und jedes Mal, wenn 'someField' durch Angular geändert wird,' ngOnChanges (...) '. –