修剪空间的角度自定义指令有效,但验证失败

时间:2019-02-18 16:13:38

标签: angular ionic-framework trim angular-directive

在ionic3 angular应用程序中,我需要在用户键入时从电子邮件输入字段中修剪空格。为此,我创建了这样的指令:

    @Directive({
  selector: '[no-space]',
  host: {
    "(input)": 'onInputChange($event)'
  }
})
export class NoSpaceDirective{
  onInputChange($event){
    $event.target.value = $event.target.value.trim();
  }
}

该指令有效,但是验证的行为不正确:验证设置为不允许在值中包含空格;当我键入一个空格时,它会被伪指令修剪掉,但是验证失败,好像该空格不可见但仍然存在。

1 个答案:

答案 0 :(得分:0)

要优化解决您的问题的方法是防止用户键入空格,我们可以使用以下代码来实现。

@Directive({
  selector: '[no-space]',
  host: {
    "(input)": 'onInputChange($event)'
  }
})
export class NoSpaceDirective{
  if ($event.key === ' ' || $event.key === 'Spacebar') {
    // ' ' is standard, 'Spacebar' was used by IE9 and Firefox < 37
    return false; //preventing type space character
    console.log('Space pressed')
  } else {
      return true; 
}

希望这会有所帮助!