繁体   English   中英

通过输入将组件传递给指令

[英]Passing component to directive by input

我完全不知道发生了什么。

我试图向我的自定义组件编写一个简单的指令,该指令基于将值传递给ther组件(也传递给ngModel)的值(来自ngModel)。

看起来像这样:

<form-text
    required
    birthDateExtracter="dateOfBirth"
    name="id"
    [(ngModel)]="model.idNumber"></form-text>

<form-datepicker #dateOfBirth
    name="Birth Date"
    [(ngModel)]="model.birthDate"></form-datepicker>

和我的指令看起来像:

@Directive({
  selector: '[ngModel][birthDateExtracter]'
})
export class BirthDateExtracterDirective {

  _component: any;

  @Input('birthDateExtracter')
  set birthDate(value: any) {
    this._component = value;
    console.log(value); //it's not working
  }

  constructor(private model: NgModel) {
  }

  @HostListener('ngModelChange', ['$event'])
  onModelChange(event) {
    console.log(event); //it works fine
  }
}

但是,而不是我的输入组件传递“ dateOfBirth”字符串。 我希望这是一个愚蠢的,schollboy错误或错别字错误,但我无法解决。 也许我应该用另一种方式。 这样有错误吗?

似乎您忘记了方括号。 我想应该是:

[birthDateExtracter]="dateOfBirth"

或者另一种方式是使用插值

birthDateExtracter="{{dateOfBirth}}"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM