Angular在点击时改变输入值



我有一个输入,它的值是作为另一个组件的输入接收的:

<input [value]="myInput.something">
<span (click)="incrementPlus()">+</span>

我需要一个简单的函数,在每次点击时增加我选择的输入值。这是一个非常简单的事情,除了输入值传递给我:
@Input() myInput: number;
,我不需要创建一个保存值的变量,因为我必须在许多其他输入中重复/重用它。我重复一遍:它通常很简单,因为我可以将@输入传递到函数中,修改它,将其保存在变量中,然后将变量传递给html输入值。但是我必须在其他html输入上重用它,并且编写大量变量对我来说似乎不是一个好的实践。

这和我以前见过的所有问题都不一样,因为它们都是静态地改变一个值,或者把它包装在一个变量中,我不想这样做。

如果你想在父组件中也改变的值,您将需要使用@Output和双向绑定。当您输入更改时,您将调用输出EventEmitter的emit来通知父节点值已经更改。

对于双向绑定,输出必须像输入一样命名,加上Change

在子元素中:

@Input() something: number;
@Output() somethingChange = new EventEmitter<number>();

在父元素中:

[(something)]="theValue"

然后当你somethingChange.emit一些值,它改变父的一个,它也传递给你的孩子。

下面是一个完整的例子:https://stackblitz.com/edit/angular-en58l5?file=src%2Fapp%2Fhello.component.ts

相关内容

  • 没有找到相关文章

最新更新