在输入时将参数传递给Angular 4指令

TSG*_*TSG 10 angular2-directives angular

我有一个像这样的输入文本字段

<input type="text" class="form-control"  [inputTextFilter]="A" [ngModel]="name">
Run Code Online (Sandbox Code Playgroud)

我的指示是:

import { Directive, Input, HostListener } from '@angular/core';

@Directive({
  selector: '[inputTextFilter]'
})

export class InputTextFilterDirective {
  @Input('inputTextFilter') params: string;

  @HostListener('keypress', ['$event'])
  onKeyUp(event: KeyboardEvent) {
    console.log('got parameters: '+this.params);
  }
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个名为"inputTextFilter"的指令,我想传递"A"参数.我传递的参数始终显示为未定义.

Gar*_*ary 12

试试这个.

更新:

import {Directive, SimpleChanges} from '@angular/core';

@Directive({
  selector: '[inputTextFilter]'
})
export class MyDirective {
  @Input('inputTextFilter') params: string;
  constructor(){}
  ngOnInit(){
     console.log(this.params)
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 我认为该格式是不完整的,但是我使用了@Input('inputTextFilter')params:string; 和参数是不确定的 (2认同)
  • 如果是IA变量,则为[inputTextFilter] =“ A”;如果“ A”为字符串,则为inputTextFilter =“ A” (2认同)

TSG*_*TSG 5

希望这对其他人有帮助......问题出在模板中。

当我将输入传递为 [myDirective]="A" 时,A 被解释为未定义的变量。既然我想传递这封信,AI 应该说 [myDirective]="'A'"