Я знаю, что свойство селектора директивы может быть определено любым допустимым селектором CSS.
Как правильно интерпретировать (читать) следующие селекторы NgForm и NgModel соответственно:
@Directive({
selector: 'form:not([ngNoForm]):not([formGroup]),ngForm,ng-form,[ngForm]',
...
})
@Directive({
selector: '[ngModel]:not([formControlName]):not([formControl])',
...
})