Получить метаданные привязок свойства компонента NgModel
Я использую Angular 5.2.10. Предположим, у нас есть шаблон компонента, содержащий произвольную компоновку, которая имеет несколько привязок, например:
<mat-form-field>
<input
matInput
type="text"
placeholder="Some input 1"
[(ngModel)]="object1.property1"> <-- This element and binding's object\property is what we need to get
</mat-form-field>
...
<app-component1
[(ngModel)]="someParentObject.object2.property1"> <-- This component and binding's object\property is what we need to get
</app-component1>
Как получить список объектов, содержащих информацию обо всех таких привязках в компоненте? Т.е. список объектов вроде ниже:
export class BindingInfo {
control: ElementRef | ComponentRef; // Class names just to explain. ElementRef is not necessarily Angular ElementRef, it could be any structure allowing to figure out an actual DOM node
target: any; // Binding target (object1 and object2 in the above example)
propertyName: string; // Property name of binding target used in the binding
}
Итак, это своего рода метаданные об Angular NgModel
привязки компонента.
Может быть, это должна быть директива или код прямо внутри компонента. Я просто пытаюсь найти правильное направление для этой задачи.
Мне нужно что-то подобное для реализации общего моста между Angular и сторонней библиотекой моделей данных, которая делает некоторые вещи вне общего рабочего процесса Angular (например, генерирует сложные события проверки, когда Angular обновляет свойства сущностей). Я пытаюсь избежать шаблонного кода, например, помещая директиву в каждый элемент с NgModel
привязка к нему, поэтому я должен подключиться к Angular в некоторых, вероятно, необычных местах.