在输入onchange事件中,更新组件内部的数组

时间:2020-01-22 13:47:50

标签: angular rxjs angular8

我现在开始学习角度,并试图了解Observable的概念以及如何使用它们。

我已经阅读了有角度的文档中有关它们的所有内容,但是我或者没有正确理解该概念,或者根本无法理解。

我将解释我的想法:

我有一个输入元素:

<div class="response" *ngFor="let reply of currentResponse.replies">
    <input style="word-break: break-all;" type="text" placeholder="Message" value="{{ reply.text }}"/>
</div>

并在组件中作为属性:

fileData: ResponseModel[];
// and
currentResponse: ResponseModel

ResponseModel作为上下文:

class ResponseModel {
    constructor(
        public id: string,
        public replies: Array<Reply>,
        public suggestedActions: [],
        public inputHint: string
    ) {}
}

我的想法:

是否有可能将输入的onchange事件附加到fileData数组或currentResponse属性,以便当输入中的值更改时,该值也将更改在数组中。

然后,当fileData数组中的值更改时,更新填充它的服务。

或者如果我误解了Observable的使用。

谢谢, 内斯特(Nestor)

2 个答案:

答案 0 :(得分:1)

您可以使用角度两种方式绑定[[ngModel)]:

<input [(ngModel)]="yourVariableName"><input>

变量应为字符串类型。因此,Input与该变量相关,每当您更改该变量时,输入内的文本就会更新,反之亦然(当您在输入内编写时,该变量也会更新)。

答案 1 :(得分:0)

该数组包含对对象的引用。将数组项绑定到值value="{{ reply.text }}"时,currentResponse.replies的引用将附加到此对象。因此,当您更新输入框的值时,它会自动更新数组。