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

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

问题描述:

我完全不知道发生了什么。通过输入将组件传递给指令

我想写一个简单的指令给我的自定义组件,它基于值(从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 
    } 
} 

但不是分量输入我路过“出生日期”字符串。我希望这是一个愚蠢的,schollboy错误或错字错误,但我无法处理它。或者,也许我应该以另一种方式做出来。这种方式是否有错误?

似乎你忘了方括号。我想这应该是:

[birthDateExtracter]="dateOfBirth" 

或另一种方式是使用插值

birthDateExtracter="{{dateOfBirth}}" 
+0

哦,伙计! :)再次拯救我的一天:)我知道那是男生的错误!非常感谢 –

+0

不客气!) – yurzui