javascript - 单击时角度更改输入值
问题描述
我有一个输入,该输入的值作为来自另一个组件的输入:
<input [value]="myInput.something">
<span (click)="incrementPlus()">+</span>
我需要一个简单的函数,可以根据我的选择增加每次点击时的输入值。这是一件非常简单的事情,除了输入值传递给我:
@Input() myInput: number;
而且我不必创建一个变量来保存值,因为我必须在许多其他输入上重复/重用它。我再说一遍:这通常很简单,因为我可以将 @ 输入传递给函数,对其进行修改,将其保存在变量中,然后将变量传递给 html 输入值。但是我必须在其他 html 输入上重用它,并且编写大量变量对我来说似乎不是一个好习惯。
这不像我之前见过的所有其他问题,因为它们都静态地改变一个值,或者将它包装在一个变量中,我不想这样做。
解决方案
如果您也想更改父组件中的值,则需要使用 @Output 和双向绑定。当您输入更改时,您将调用输出 EventEmitter 的发出来通知父级该值已更改。
对于双向绑定,输出必须像您的输入一样命名,加上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
推荐阅读
- sql - 为什么我仍然得到空值?
- c# - 如何仅将外部身份验证与 asp.net 核心身份一起使用
- pyomo - 在总和中显式建模下限和上限
- python - 设置 SQLALCHEMY_POOL_RECYCLE 时,如何在 SQLAlchemy 中签出和释放连接?
- java - 如何在 weblogic.xml 中创建自定义 ManagedScheduledExecutorService 并在 java 代码中使用它?
- php - 在 laravel formRequests 中获取输入值
- angular - 如何阅读和提取pdf中的文本?
- firemonkey - 更改 Firemonkey TMemo 组件中选定子字符串后面的背景颜色
- c++ - mysqlcppconn 程序中的内存泄漏
- javascript - 如何更新 JSTREE 中的数据属性?