Доступ к NgModel.model из структурной директивы - PullRequest
0 голосов
/ 11 июля 2020

Я создал следующую структурную директиву в Angular 8:

@Directive({
  selector: '[myDirective]',
  providers: [NgModel]
})
export class MyDirective implements OnInit {

  constructor(private ngModel: NgModel, private templateRef: TemplateRef<any>,
              private viewContainer: ViewContainerRef, private resolver: ComponentFactoryResolver) {
  }

  ngOnInit() {
    this.viewContainer.createEmbeddedView(this.templateRef);
    console.log(this.ngModel.model);
  }
}

, которую я использую следующим образом:

<input [(ngModel)]="model" *myDirective>

Однако значение ngModel, введенное в директиву, похоже, быть неинициализированным. Т.е. this.ngModel.model всегда возвращает undefined. У меня эта проблема только со структурными директивами. В других директивах свойство ngModel предоставляет мне модель. Для этих директив мне также не нужно добавлять providers: [NgModel] к @Directive.

Кто-нибудь знает, что я делаю неправильно?

...