Given the following code snippet:
@Component({
selector: 'app-editor',
templateUrl: './editor.component.html',
styleUrls: ['./editor.component.scss'],
providers: [{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => EditorComponent),
multi: true
}]
})
export class EditorComponent implements OnInit, OnDestroy, AfterViewInit, ControlValueAccessor{
public _editor_status: { 'opened': boolean, 'editable': boolean, 'new': boolean, 'cont': boolean, 'data': any };
@Input() form: FormDto = null;
public test:any;
updateChanges() {
.....
}
writeValue(value: any): void {
.....
}
onChange: (_: any) => void = (_: any) => { };
onTouched: () => void = () => { };
registerOnChange(fn: any): void {
this.onChange = fn;
}
registerOnTouched(fn: any): void {
this.onTouched = fn;
}
......
}
RecordManager.component.html
<app-editor *ngIf="_editor_status.opened" [editor_id]="'f41editor'"
[form]="form"
[(ngModel)]="_editor_status"
(ngModelChange)="editorChange($event)"
[ngModelOptions]="{standalone: true}">
</app-editor>
RecordManager.component.ts
....
@Component({
selector: 'app-record-manager',
templateUrl: './Record-manager.component.html',
styleUrls: ['./Record-manager.component.scss']
})
export class RecordManagerComponent implements OnInit, OnDestroy {
public _editor_status: { 'opened': boolean, 'editable': boolean, 'new': boolean, 'cont': boolean, 'data': any }
= { opened: false, editable: false, new: false, cont: false, data: null };
private form: FormDto;
......
}
Both RecordManagerComponent and EditorComponent is anuglar form, with EditorComponent nested inside RecordMangerComponent, for the code RecordManager.component.html
<app-editor *ngIf="_editor_status.opened" [editor_id]="'f41editor'"
[form]="form"
[(ngModel)]="_editor_status"
(ngModelChange)="editorChange($event)"
[ngModelOptions]="{standalone: true}">
</app-editor>
- for
[(ngModel)]="_editor_status"
I know the right hand side "_editor_status" mean _editor_status in RecordManagerComponent, but for the left hand side, [(ngModel)], does it surely mean property _editor_status in EditorComponent as it has the same name as in the right hand side of [(ngModel)]="_editor_status", or the meaning of [(ngModel)] depends on writeValue(value:any) function? If writeValue function assign the parameter value to test property of EditorComponent, then [(ngMode)] mean test property of EditorComponent?
- for
(ngModelChange)="editorChange($event)"
what property in EditorComponent with trigger ngModelChange? Or what property in EditorComponent will trigger this.onChange in EditorComponent? the same property as in [(ngModel)]?
- as already have
(ngModelChange)="editorChange($event)"
then is
[(ngModel)]="_editor_status"
should change to
[ngModel]="_editor_status"