gpt4 book ai didi

javascript - Angular 保存编辑的内容

转载 作者:行者123 更新时间:2023-12-04 03:34:08 25 4
gpt4 key购买 nike

我正在编写一段代码,用户可以在其中更改屏幕上的段落并保存。目前,用户可以更改段落并且 save() 操作有效。但是保存时,更改的段落不会通过网络。该段落没有更改,它保存未经编辑的版本,就好像我什么都没写一样。我应该改变什么来实现这一目标?

HTML:

  <div class="content fuse-white ml-24 mr-8 h-100-p" fusePerfectScrollbar>
<div class="label-list">
<p>
A Paragraph:

<span contenteditable="true">
{{_stickerData?.StickerData}}
</span>
</p>

</div>
</div>

TS:

save(){
this.confirmDialogRef = this._dialog.open(FuseConfirmDialogComponent, {
disableClose: false,
});

this.confirmDialogRef.componentInstance.confirmMessage =
"The paragraph will be changed";

this.confirmDialogRef.afterClosed().subscribe((result) => {
if (result) {
this._productionService
.saveStickerData(this._stickerData)
.subscribe((response: IStickerData) => {
this._stickerData = response;
this._messages.Show(
"SUCCESS",
3
);
});
}
});
}

服务技术人员:

saveStickerData(data: IStickerData): Observable<IStickerData> {
return this._http.post("Production/SaveStickerData", data);
}

最佳答案

[编辑]当您在模板中插入变量并使用 contenteditable - 它不会更新您的变量。您应该手动更新它。

<span contenteditable [textContent]="_stickerData?.StickerData" (input)="onStickerDataChange($event.target.innerHTML)">
</span>

在 TS 中应该是这样的:

onStickerDataUpdate(data) {
this._stickerData.StickerData = data;
}

有用链接:1 , 2[旧建议]

  1. 您确定回复已编辑段落吗?如果是,则可能是更改检测有问题。在组件构造函数中导入ChangeDetectorRef,获取数据时触发markForCheck()方法。
  2. 嵌套订阅是一种不好的做法,尝试用 switchMap() 重构

这是一个伪代码来展示这个想法:

   class MyComponent {
constructor(private cd: ChangeDetectorRef) {}

save(){
this.confirmDialogRef =
this._dialog.open(FuseConfirmDialogComponent, {
disableClose: false,});
this.confirmDialogRef.componentInstance.confirmMessage =
"The paragraph will be changed";

this.confirmDialogRef.afterClosed().pipe(switchMap(result) => {
if (result) {
return this._productionService.saveStickerData(this._stickerData);
} else {
return EMPTY;
}
}).subscribe((response) => {
this._stickerData = response;
this._messages.Show(
"SUCCESS",
3
);
this.cd.markForCheck();
});
}
}

关于javascript - Angular 保存编辑的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67264581/

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