如果值等于零,则将Angular输入值设置为空?

时间:2018-02-07 14:45:24

标签: angular

如果值等于零(0),是否有一种简单的方法可以将输入值设置为空/空?我在这里遇到了这个AngularJS问题Hide Value in input when it's zero in angular Js,但是找不到Angular 2 +的任何内容。

只需要在加载页面时完成。我意识到我可以在组件中使用setter,但想知道是否有东西可以放在输入本身。

这可以用指令完成吗?

2 个答案:

答案 0 :(得分:0)

您可以使用模板变量。

checkInputValue(input) {
  input.value = input.value == '0' ? '' : input.value;
}

然后

<input #input (keyup)="checkInputValue(input)" />

编辑forload:

import { ViewChild, ElementRef, AfterViewInit } from '@angular/core'

// ...

export class Component implements AfterViewInit {

  @ViewChild('input') input: ElementRef

  ngAfterViewInit() {
    let inputValue = this.input.nativeElement.value;
    inputValue = inputValue == '0' ? '' : inputValue;
  }
}

答案 1 :(得分:0)

如果你想在页面加载时完成它,你可以这样做:

<input type="number" (ngModelChange)="data = $event === 0 ? '' : $event" [ngModel]="data" >

这将阻止值永远为0,无论何时。