【问题标题】:Adding/Updating text/value of an Input Field after change (Angular)更改后添加/更新输入字段的文本/值(角度)
【发布时间】:2026-01-08 07:05:01
【问题描述】:

假设我有这个设置:

模板: <input [(ngModel)]="myValue" type="text" /> <button (click)="addText">Click me</button> {{myValue}}

代码:

 addtext()
{
this.myValue='test';
}

如果我单击按钮,输入字段保持为空,但 {{myValue}} 会更新。 如何将文本添加到输入字段(或者更好地更新它,因为 nGModel 已经具有实际值)?

编辑:

单击按钮时,会在用户添加/选择一些数据的位置显示一个子组件。当子组件被填充时,会发出一个带有子组件数据的事件。 父级通过“onFilled”事件做出反应并更改模型。但是由于 View 不知道变化,所以输入没有更新(即使 ng-reflect-model 也是正确的)。

所以我真正的问题是:如何强制 Angular 在视图上运行更新/重新渲染它?

发射部分:

孩子:

@Output myEmitter:new EventEmitter<object>();

filled(){
this.myEmitter.emit({value:'Test'});
}

家长: (myEmitter)='onMyEmitter($event)' 添加到输入

 onMyEmitter(value) {this.myValue = value}

【问题讨论】:

    标签: angular typescript


    【解决方案1】:

    我认为你没有调用点击事件函数。

    <input [(ngModel)]="myValue" type="text" />
    <button (click)="addtext()">Click me</button> //addText changed to addtext()
    {{myValue}}
    

    你可以在https://angular-h7uata.stackblitz.io查看它的工作情况

    代码:https://stackblitz.com/edit/angular-h7uata

    【讨论】:

    • 打错字了,抱歉。但主要问题是不更新输入字段,而不是点击事件。原始来源(它不起作用)有点复杂,但不幸的是在“非互联网”机器上,所以我在这里画了草图。
    • 您的目标不是在输入字段中显示文本吗?我认为 stackblitz 示例涵盖了这一点。
    • 我会更新我的问题以尝试更好地解释它。
    • 那么您想在更改输入字段中的文本时更新 myValue 的值吗?
    最近更新 更多