gpt4 book ai didi

javascript - ngModel 反射(reflect)到所有文本区域

转载 作者:太空狗 更新时间:2023-10-29 17:56:21 25 4
gpt4 key购买 nike

我有多个文本区域(使用 ngFor 循环并在内部添加带有文本区域的新 div)。我需要的是每个 textarea 都有单独的 ngModel,我不想直接将它绑定(bind)到 dataArray 中对象的属性 - 例如:

[(ngModel)]='data.note' or [(ngModel)]='data.feedback' . 

这可行,但我在 dataArray 中没有反馈属性,因此它不适用于第二个文本区域。

例如,我当前在一个文本区域中的实现变化反射(reflect)在所有其他文本区域中。我尝试使用索引方法但出现错误:

ERROR TypeError: Cannot read property '1' of undefined

<div *ngFor="let data of dataArray; let index=index;trackBy:trackByIndex;">
<div class="card-body">
<form class="form">
<div class="form-body">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<textarea name="note" [(ngModel)]='selectedNote' class="form-control"
rows="2"></textarea>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="form-group">
<textarea name="feedback" [(ngModel)]='selectedFeedback' class="form-control" rows="4"></textarea>
</div>
</div>
</div>
</div>
</form>
</div>

使用当前代码,如果我在名称为“note”的第一个文本区域中添加一些文本,则更改会反射(reflect)到名称为“note”的所有文本区域。如前所述尝试添加

[(ngModel)]='selectedFeedback[index]' but i am getting error.

还尝试为文本区域赋予不同的名称:

<textarea name="note{{index}}" [(ngModel)]='dataArray[index]' rows="2"></textarea> OR

<textarea name="note{{index}}" [(ngModel)]='selectedNote' rows="2"></textarea>

但变化再次反射(reflect)在每个文本区域上。

最佳答案

您可以尝试使用任何数组,我正在使用 data(n) 函数返回一个长度为 n 的数组。在这个例子中它只是为了迭代

<div *ngFor="let item of data(8); let i = index">
<textarea [(ngModel)]='values[i]'></textarea>
</div>

// To reflect changes
<div *ngFor="let item of data(8); let i = index">
<div>{{ values[i] }}</div>
</div>

有TS

export class AppComponent  {

values = [];

data(n) {
return Array(n);
}
}

Stackblitz.com 中的工作示例

关于javascript - ngModel 反射(reflect)到所有文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51052306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com