gpt4 book ai didi

javascript - Typescript - 手动刷新文本区域

转载 作者:搜寻专家 更新时间:2023-10-30 21:57:49 27 4
gpt4 key购买 nike

我有一个 textareaheight: auto; .但是,当我重置 [ngModel]与该文本区域关联的变量(例如 this.myNgModelVar = ""; ),文本区域的高度不会自动降低,直到用户再次开始输入。

由于我找不到任何解决方案,我想我可能只想刷新 <textarea> .但问题是,在 Typescript 上,我该如何刷新/更新它?

最佳答案

有一个 hack,我用它来重新创建 DOM 元素,但有些人不喜欢它。

<textarea *ngFor="let x of refresh"></textarea>

然后在你的组件中。

@Component({...})
export public MyComponent {
public refresh = [1];

public constructor(private change: ChangeDetectorRef) {}

public refreshTextArea() {
this.refresh[0]++;
this.change.markForCheck();
}
}

这是有效的,因为 *ngFor数组更改时将更新 DOM 元素的集合。我们使用 this.refresh[0]++修改触发 *ngFor 的第一个元素重新创建 DOM 元素。该数组只有一个元素,所以只有一个 <textarea>将被创建。

看到此内容的其他 Angular 开发人员可能会感到困惑。所以一定要添加评论来解释你为什么这样做。

另一种方法是使用 *ngIf和一个 setTimeoutfalse 切换 bool 值至 true并允许 Angular 重新渲染 DOM 元素。这是更多的代码,甚至更令人困惑(如果你问我的话)。

关于javascript - Typescript - 手动刷新文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51528916/

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